Nginx开源版安装
1. 版本安装选择
1.1 windows版本
Windows版本有两个明显的问题:
- Windows版的Nginx其UDP功能不被支持。
- Windows版的Nginx的worker个数设置无效,实际只有一个worker在工作。
1.2 安装选择
安装方式有两种: yum安装和编译安装。不推荐直接使用yum安装,因为存在如下两个问题:
- 版本太旧,以CentOS为例,直接yum安装的版本是1.12.2版本,已经严重脱离了时代;
- 无法自定义安装模块,安装目录等等,不方便后续的使用。
2. 下载
访问https://nginx.org/en/download.html ,下载最新稳定版nginx-1.26.3
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进程发送自定义信号。 |