- 查看当前nginx 安装路径
[root@localhost sbin]# whereis nginx
- 查看当前nginx 版本号
- 官网下载版本
https://nginx.org/en/download.html
本手册从1.24.0 升级到1.25.4 版本
- Tar 包上传到服务器并解压缩文件
- 解压nginx 安装包
tar xf nginx-1.25.4.tar.gz
cd nginx-1.25.4
- 编译新版本
查看老版本参数---[root@localhost nginx-1.25.4]# /usr/sbin/nginx -V
其次 cd /opt/nginx-1.25.4 进入解压缩目录
./configure --prefix= 填写红线中看到的完整路径
上图中红线部分是重点:/usr/sbin/nginx -V 查看到路径是什么就填写完成路径
[root@localhost nginx-1.25.4]# echo $? ## 判断编译是否成功
0
- 编译
执行make 参数,不执行make install ## 不能执行make install 否则会覆盖文件
- 查看nginx 配置文件
如果发现 objs 目录下没有nginx 目录文件,请执行make 参数,本次已经踩坑。
- 备份现有配置文件
mv /usr/sbin/nginx /usr/sbin/nginx_$(date +%F) ####当前配置文件备份
当前 nginx_2023-03-12 就是备份文件
进 /opt/nginx-1.25.4/objs 复制nginx 目录去当前nginx 安装目录/usr/sbin/
- 热升级
Cd /opt/nginx-1.25.4 ### 进入解压缩目录
make upgrade
[root@localhost objs]# /usr/sbin/nginx -t ### 验证当前启动文件正确性
图片中有 http2 warn
Vi /etc/nginx/nginx.conf 配置文件
去掉图片中的http2 参数即可
- 验证完整性
出现 successful 说明正常
- 查看当前 nginx 进程
一个master 主进程 4 个worker 子进程,主进程号为26062,此处显示的还是老版本 nginx 进程号
- 升级老版本nginx
[root@localhost nginx-1.25.4]# kill -USR2 26062 ###平滑升级 USR2 请不要写错
执行后查看 nginx 进程号会出现2 个 master 进程,第2个master 进程起来后说明新版本nginx 已经起来
- 关闭老版本nginx 进程
此处也可以执行 kill -9 强制给老进程 kill ,也可以保留两个主进程,新版本有问题可以执行回退操作
- 版本回退
执行HUP 指令 唤醒老版本 kill 新版本进程
- 版本验证
- 结束语: 以上操作升级 nginx 用户无感,业务不需要中断。
本文暂时没有评论,来添加一个吧(●'◡'●)