Nginx的升级

发布时间:2026/8/3 8:55:49
Nginx的升级 前言在服务器运维工作中Nginx 作为高性能的 Web 服务器和反向代理其版本更新不仅能修复已知漏洞、提升稳定性还可能带来新的功能特性。但升级过程中如何保障业务不中断本文将详细对比 普通升级 与 平滑升级 两种方案从原理、操作步骤到注意事项带你完整掌握 Nginx 版本升级流程。目录前言1.普通升级2.平滑升级1.普通升级1. 升级前必做备份旧版本cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old.1.12.22. 停止旧版本服务/usr/local/nginx/sbin/nginx -s quit.. 3.编译新版本cd /usr/local/srctar -zxvf nginx-1.22.0.tar.gzcd nginx-1.22.0# 配置必须与旧版本参数一致./configure --prefix/usr/local/nginx --with-http_ssl_module# 编译注意只 make千万不要 make installmake4. 替换二进制文件cp objs/nginx /usr/local/nginx/sbin/nginx5. 启动新版本并验证/usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx -v # 应显示 1.22.02.平滑升级确认当前是原生启动的ps -ef | grep nginx编译目标版本cd /usr/local/src/nginx-1.12.2make备份当前二进制文件cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old.1.22.0替换新版本二进制文件cp -f objs/nginx /usr/local/nginx/sbin/nginx校验配置兼容性/usr/local/nginx/sbin/nginx -t执行平滑升级kill -USR2 $(cat /usr/local/nginx/logs/nginx.pid)#启动新 Master 进程#此时执行 ps -ef | grep nginx你会看到两个 master processkill -WINCH $(cat /usr/local/nginx/logs/nginx.pid.oldbin)#关闭旧 Worker 进程kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid.oldbin)#彻底退出旧 Master 进程最终验证/usr/local/nginx/sbin/nginx -v