Skip to content

Nginx开源版安装

1. 版本安装选择

1.1 windows版本

Windows版本有两个明显的问题:

  • Windows版的Nginx其UDP功能不被支持。
  • Windows版的Nginx的worker个数设置无效,实际只有一个worker在工作。

1.2 安装选择

安装方式有两种: yum安装和编译安装。不推荐直接使用yum安装,因为存在如下两个问题:

  1. 版本太旧,以CentOS为例,直接yum安装的版本是1.12.2版本,已经严重脱离了时代;
  2. 无法自定义安装模块,安装目录等等,不方便后续的使用。

2. 下载

访问https://nginx.org/en/download.html ,下载最新稳定版nginx-1.26.3 Alt text

3. 编译安装

3.1 上传解压

上传到/opt/software, 解压:

sh
[jack@hadoop101 software]$ tar -xvf nginx-1.26.3.tar.gz -C ../module/

3.2 配置环境

Nginx编译需要C编译环境,linux系统中需要使用gcc编译器:

sh
## 顺便把其他依赖也一起安装了
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel

3.3 编译

Nginx自带的configure脚本,指定安装路径和编译的模块,一般会添加所有nginx模块一块编译:

sh
./configure --prefix=/usr/local/nginx        \
--with-http_ssl_module                       \
--with-http_stub_status_module               \
--with-http_gzip_static_module               \
--with-stream                                \
--with-http_realip_module                    \
--with-http_flv_module                       \
--with-http_random_index_module              \
--with-mail                                  \
--with-pcre                                  \
--with-http_v2_module                        \
--with-stream_ssl_module                     \
--with-stream_realip_module

执行编译安装:

sh
make && sudo make install

编译安装完毕后,会在/usr/local/nginx目录下生成对应的文件。

4. Nginx启停

进入安装好的目录/usr/local/nginx/sbin

sh
./nginx 启动
./nginx -s stop 快速停止
./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置

5. 安装成系统服务

创建服务脚本:

sh
vi /usr/lib/systemd/system/nginx.service
## 服务脚本内容
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

重新加载系统服务

sh
systemctl daemon-reload

启动服务

sh
systemctl start nginx.service
## 开机启动
systemctl enable nginx.service

6. Nginx命令

基本格式:nginx [选项] [参数]

6.1 常用选项

选项功能
-c <配置文件>指定一个自定义nginx.conf文件路径
-g <全局配置>在命令行中指定全局配置选项
-p <工作目录>设置工作目录,
用于存放日志文件和临时文件
-s <信号>向nginx发送信号,常用的有stop(停止nginx进程)
reload(重新加载配置文件)
-t测试配置文件语法是否正确
-q在测试配置文件时,
以静默模式运行,只输出关键信息
-V显示nginx的版本、编译信息和配置参数
-h显示帮助信息,包括所有可用的命令行选项
-s <文件>启动nginx并将
master进程的PID写入指定的文件
-e <错误日志文件>设置错误日志文件的路径
-g <配置指令>设置全局配置指令。可以在命令行中
设置多个全局配置指令,用分号分隔
-T测试配置文件,并打印出解析后的配置内容
-q <文件>检查配置文件,并打印出解析后的配置内容,
但不启动nginx

6.2 信号参数

nginx -s 信号

信号描述
stop快速停止nginx进程,可能会中断现有连接。
quit优雅地停止nginx进程,等待现有连接完成后再停止。
reload重新加载配置文件,优雅地应用新配置,不中断现有连接。
reopen重新打开日志文件,用于日志切割或日志重定向。
term快速停止nginx进程,可能会中断现有连接,与stop信号类似。
usr1重新打开日志文件,用于日志切割或日志重定向,与reopen信号类似。
usr2平滑地升级nginx可执行文件。
hup重新加载配置文件,优雅地应用新配置,与reload信号类似。
winch当nginx以master/worker工作模式运行时,重新生成worker进程以适应新的配置
usr3向worker进程发送自定义信号。