前言

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。本文介绍四种基于linux环境下的安装nginx的方法,安装版本为现阶段官网推出的最新稳定版本。

Linux下四种安装方式

  • yum 安装:简单方便,不易出错
  • rpm安装包安装:便捷,方便
  • 源码包安装:有点繁琐,服务性能好
  • docker 安装:方便快捷

其中yum、源码安装、docker安装依赖互联网接入,rpm可以离线安装。

安装步骤

安装之前查看端口,默认nginx使用的80端口,如果80端口已经占用启动过程中可能会报错,针对端口占用情况,可以停止占用端口的服务或者nginx改用其他端口启动,停用和改端口方法不在本文介绍。

1
netstat -nltp | grep 80

3.1 yum 安装 nginx

nginx添加yum repro库中

1
2
3
4
5
# 下载nginx包
wget https://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 建立nginx的yum仓库
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

查看nginx信息

1
yum info nginx

查看yum源仓库中nginx版本

1
yum --showduplicates list nginx | expand

安装nginx,默认安装最新的稳定版本 及 nginx 1.20.2

1
yum install nginx

3.2 源码编译安装nginx

Nginx 源码包安装步骤相比其他安装方法比较繁琐,但是操作不复杂,需要提前安装一些 Nginx 依赖库。

3.2.1 依赖库安装

1、安装gcc环境

编译时依赖gcc环境

1
yum -y install gcc gcc-c++ autoconf automake make

2、安装 pcre

提供nginx支持重写功能

1
yum -y install pcre pcre-devel

3、安装zlib

zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩

1
yum -y install zlib zlib-devel make libtool

4、安装openssl

安全套接字层密码库,用于通信加密

1
yum -y install openssl openssl-devel

3.2.2 nginx 安装

手动创建用户和用户组

1
2
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M

官网下载nginx源码包

1
wget https://nginx.org/download/nginx-1.20.2.tar.gz

解压

1
tar -zxvf nginx-1.20.2.tar.gz

编译目录

1
2
3
cd nginx-1.20.2
# 检查平台安装环境
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx

参数说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
–prefix=/usr/local/nginx
#编译安装目录

–user=nginx
#所属用户nginx

–group=nginx
#所属组nginx

–with-http_stub_status_module
#该模块提供nginx的基本状态信息

–with-http_ssl_module
# 支持HTTPS

编译源码并安装

1
2
make			# 编译
make install # 安装

nginx编译安装完成以后,修改nginx.conf

1
user nginx nginx;

3.2.3 ningx操作

启动服务

1
/usr/local/nginx/sbin/nginx

重新加载服务

1
/usr/local/nginx/sbin/nginx -s reload

停止服务

1
/usr/local/nginx/sbin/nginx -s stop

查看进程

1
ps -ef | grep nginx

验证

1
curl IP

nginx版本信息查看

1
/usr/local/nginx/sbin/nginx -V

nginx配置服务

目前nginx都是通过命令执行的,在nginx运行过程中,需要nginx作为系统的服务运行。以systemctl命令运行服务

配置服务文件

1
vi /lib/systemd/system/nginx.service

配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

创建服务

1
systemctl enable nginx.service

使用服务命令

1
systemctl status nginx

3.3 rpm安装包安装nginx

3.3.1 下载rpm安装包

官网下载安装包

1
wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm

3.3.2 安装nginx包

1
rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm

3.3.3 配置权限

使用root账号创建nginx用户和组

1
2
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M

授权列表清单给nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
chown -R nginx:nginx /etc/log/logrotate.d/nginx
chown -R nginx:nginx /etc/nginx
chown -R nginx:nginx /etc/nginx/conf.d
chown -R nginx:nginx /etc/config.d/default.conf
chown -R nginx:nginx /etc/nginx/fastcgi_params
chown -R nginx:nginx /etc/nginx/mime.types
chown -R nginx:nginx /etc/nginx/modules
chown -R nginx:nginx /etc/nginx/nginx.conf
chown -R nginx:nginx /etc/nginx/scgi_params
chown -R nginx:nginx /etc/nginx/uwsgi_params
chown -R nginx:nginx /usr/lib/systemd/system/nginx-debug.service
chown -R nginx:nginx /usr/lib/systemd/system/nginx.service
chown -R nginx:nginx /usr/lib64/nginx
chown -R nginx:nginx /usr/lib64/nginx/modules
chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx
chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx/check-reload
chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx/upgrade
chown -R nginx:nginx /usr/sbin/nginx
chown -R nginx:nginx /usr/sbin/nginx-debug
chown -R nginx:nginx /usr/share/doc/nginx-1.20.1
chown -R nginx:nginx /usr/share/doc/nginx-1.20.1/COPYRIGHT
chown -R nginx:nginx /usr/share/man/man8/nginx.8.gz
chown -R nginx:nginx /usr/share/nginx
chown -R nginx:nginx /usr/share/nginx/html
chown -R nginx:nginx /usr/share/nginx/html/50x.html
chown -R nginx:nginx /usr/share/nginx/html/index.html
chown -R nginx:nginx /var/cache/nginx
chown -R nginx:nginx /var/log/nginx

启动nginx

1
systemctl start nginix

验证

1
curl IP

卸载 nginx

1
2
3
4
5
# 查看nginx安装文件
rpm -qa | grep nginx
nginx-1.20.2-1.el7.ngx.x86_64
# 卸载nginx安装文件
rpm -e nginx-1.20.2-1.el7.ngx.x86_64

3.4 docker 中安装nginx

docker安装可以选择在线和离线安装,在线安装使用docker命令安装,离线安装使用docker安装完毕后,打包至离线服务器进行安装,本文以在线安装为例进行展开操作。

1
2
3
4
5
6
# 获取nginx镜像
docker pull nginx:1.21.6
# 查看镜像
docker images
运行nginx
docker run --name nginx -p 80:80 -d nginx

使用过程中会挂载 配置文件、站点、日志信息,在现有基础上新增挂载参数即可。
验证

1
curl IP

4 nginx 其他

4.1 nginx常用操作

常用操作是基于nginx正确安装的基础上的操作

启动nginx

1
systemctl start nginx

停止 nginx

1
systemctl stop nginx

重启 nginx

1
systemctl restart nginx

重新加载配置

1
systemctl reload nginx

设置开机启动

1
systemctl enable nginx

关闭开机启动设置

1
systemctl disable nginx

查看版本

1
nginx -V

4.2 目录说明

目录 说明
/etc/nginx/ 所有相关配置文件目录
/etc/nginx/nginx.conf nginx主配置文件
/etc/nginx/conf.d/ 独立的nginx服务配置文件目录
/var/log/nginx/ nginx日志文件目录
/var/log/nginx/access.log 访问日志(IP/浏览器信息/处理时间/请求URL)
/var/log/nginx/error.log 错误日志(服务器和请求处理中的错误信息)
/usr/share/nginx/html 默认的站点位置,可以根据实际情况进行设置调整

参考链接:https://blog.csdn.net/shallow72/article/details/123878716