Nginx 平滑升级的实战指南!(含备份+业务0中断+回滚)
在实际生产环境,安全部门一般都会定期去扫描程序漏洞,基本都需要升级版本。今天我们就分享一下Nginx如何平滑升级,做到零中断。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
今天分享一下Nginx如何平滑升级,做到零中断。
在实际生产环境,安全部门一般都会定期去扫描程序漏洞,基本都需要升级版本。
部分运维人员的做法是:停服务--> 删除旧版本nginx-->安装新版本nginx-->启动服务。
这种方式需要停服务,非常影响用户体验感,所以我下面介绍一下如何进行不停机且安全可控得进行平滑升级Nginx。

1. 实验环境说明
操作系统:Rockylinux9.4当前nginx是编译安装部署路径:/data/nginx从nginx1.26.2升级到1.29.02. 升级前先备份!非常关键!
线上升级,没备份 = 自杀式升级。
全量备份:
tar -zcvf /data/nginx-backup-$(date +%F).tar.gz /data/nginx/
回滚时你只需tar -zxvf+ reload,1 分钟恢复原状。
3. 确认原版本和编译参数
[root@webserver data]# nginx -Vnginx version: nginx/1.26.2built by gcc 11.5.0 20240719 (Red Hat 11.5.0-5) (GCC) built with OpenSSL 3.2.2 4 Jun 2024TLS SNI support enabledconfigure arguments: --prefix=/data/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-stream --with-stream_ssl_module

非常重要!新版本必须用相同参数编译才能平滑替换,不过可以新增参数!
4. 安装依赖
dnf install -y gcc make zlib-devel pcre-devel openssl-devel wget
这一步可以省略,一般编译旧版本时已经安装了依赖。
5. 下载并编译 Nginx 新版本
(1) 下载源码
版本可以具体根据漏扫要求,一般是建议最新版本,我这边选1.29.0版本:
wget https://nginx.org/download/nginx-1.29.0.tar.gztar -zxvf nginx-1.29.0.tar.gzcd nginx-1.29.0
(2) 使用原配置参数重新编译
这里也可以添加一些新的参数,但是尽量不要删除以前的参数,建议在已有基础添加新参数。
./configure --prefix=/data/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-stream --with-stream_ssl_modulemake
注意注意:千万不要 make install,避免直接覆盖现有 Nginx!
6. 平滑升级核心流程
(1) 替换 Nginx 可执行文件
# 移动旧版本可执行文件mv /data/nginx/sbin/nginx /data/nginx/nginx/sbin/nginx.old# 将新版本的执行文件放置在安装目录下cp ./objs/nginx /data/nginx/sbin/nginx# 检测Nginx进程,可见旧的版本进程还在运行ps -ef |grep nginx

(2)启动新主进程(平滑切换)
# 杀掉旧版nginx主进程,让新进程重新生成kill -USR2 `cat /data/nginx/logs/nginx.pid`# 上面引用部分主要是找出nginx的PID,你也可以根据ps来找。
此时存在4个进程. 2个旧版nginx进程 2个新版nginx进程。
新的 master 进程加载新版本。
老版本PID文件变为.pid.oldbin,仍然工作中:

(3) 优雅关闭旧 worker进程
kill -WINCH `cat /data/nginx/logs/nginx.pid.oldbin`

旧worker 会逐步停止服务,连接自动转移到新版本,旧master进程还在。
7. 验证是否升级成功
查看版本:
nginx -v
检查日志无报错:
tail /data/nginx/logs/error.log
确认监听端口仍在线:
netstat -lntup |grep nginx
多核 CPU 下也可观察进程切换:
ps -ef | grep nginx

8. 结束旧主进程
等业务确认OK后,没问题,就可以杀掉旧的master进程了。
kill -QUIT `cat /data/nginx/logs/nginx.pid.oldbin`# 再次检查ps -ef |grep nginx

此时旧版进程彻底退出,升级完成!
9. 快速回滚操作
如果升级后出问题,只需执行:
cp /data/nginx/sbin/nginx.bak /data/nginx/sbin/nginxnginx -s reload
也可以恢复整个 Nginx 安装目录:根据之前那个备份目录直接解压后重载nginx:
tar -zxvf /data/nginx-backup-YYYY-MM-DD.tar.gz -C /nginx -s reload
谨记:先备份后操作!如果可以测试环境先行!
相关攻略
Nginx是一款很强大的高性能Web和反向代理服务,它是用C语言开发的,其核心优势占有内存少,并发能力强,非常适合应用在高并发场景、静态资源托管和请求的负载均衡等等。 在微服务架构普及的当下,即使项
3 月 18 日消息,名为 anvme 的用户昨日于 Nginx 的 Github 页面上,提交了为 Nginx 错误页面添加深色模式支持的请求,但这项请求于昨天被 Nginx 的开发者拒绝。该用
在实际生产环境,安全部门一般都会定期去扫描程序漏洞,基本都需要升级版本。今天我们就分享一下Nginx如何平滑升级,做到零中断。 今天分享一下Nginx如何平滑升级,做到零中断。在实际生产环境,安全部
Nginx 的并发能力由其进程模型决定,关键在于合理配置 Worker 进程数和每个进程的连接数。进程与连接模型:Nginx 的总并发能力(理论最大值)约等于: worker_processes
用豆包ai生成shell命令的关键在于准确描述需求并验证结果。1 明确操作目标,如“批量删除日志文件”或“查找内存占用最高的进程”,越具体越好;2 使用提示词模板,结构为“操作
热门专题
热门推荐
《全面战争:中世纪3》:经典延续,如何平衡怀旧与创新? 近期,《全面战争:中世纪3》的项目负责人帕维尔·沃伊斯坦然指出,要打造一款真正优秀的续作,绝不能仅仅依赖对前作模式的简单复刻。这一观点引人深思——尽管《中世纪2:全面战争》至今仍在策略游戏爱好者心中占据着经典地位,但开发团队此次显然决心跳出“照
雷鸟X3 Pro斩获AWE艾普兰创新大奖,开启全民AR生活新篇章 在上海新国际博览中心隆重揭幕的2026年中国家电及消费电子博览会(AWE)上,前沿AI科技与未来生活愿景激情碰撞。全球消费级AR领导品牌雷鸟创新,以其里程碑式的表现,定义了行业发展的新方向。 通过“顶尖硬件科技+顶级文化IP”的双轨战
借力AWE2026“一展双区”,MOVA双区协同、震撼登场 备受瞩目的科技盛会——2026年中国家电及消费电子博览会(AWE),于3月12日至15日在上海盛大举办。本届AWE展会首次创新采用“一展双区”的展览模式,主会场位于上海新国际博览中心,分会场则设于上海东方枢纽国际商务合作区,两大展区高效联动
冰结师技能全解析 踏入2026年,《地下城与勇士》中的冰结师职业,其技能体系已构建得更为成熟与强大。无论是在副本中高效清理海量怪物,还是在决斗场与高手玩家周旋,这个职业都能凭借其独特的冰霜艺术掌控战局。刷图时,酷寒的范围法术可瞬间清屏;而在PVP竞技中,一套将冻结控制与瞬间爆发完美衔接的连招,往往让
iPhone 18 Pro系列模具不变,屏幕形态将与iPhone 17 Pro保持一致 备受期待的屏下Face ID组件小型化设计与灵动岛区域缩窄方案,预计将被推迟至后续迭代机型中正式应用。 近期,关于iPhone 18 Pro系列的技术传闻持续引发行业关注,尤其在显示与解锁设计领域传言甚多。多方消





