游乐游手机版
首页/科技数码/文章详情

Nginx 平滑升级的实战指南!(含备份+业务0中断+回滚)

时间:2025-12-15 19:51
在实际生产环境,安全部门一般都会定期去扫描程序漏洞,基本都需要升级版本。今天我们就分享一下Nginx如何平滑升级,做到零中断。 今天分享一下Nginx如何平滑升级,做到零中断。在实际生产环境,安全部

在实际生产环境,安全部门一般都会定期去扫描程序漏洞,基本都需要升级版本。今天我们就分享一下Nginx如何平滑升级,做到零中断。

今天分享一下Nginx如何平滑升级,做到零中断。

在实际生产环境,安全部门一般都会定期去扫描程序漏洞,基本都需要升级版本。

部分运维人员的做法是:停服务--> 删除旧版本nginx-->安装新版本nginx-->启动服务。

这种方式需要停服务,非常影响用户体验感,所以我下面介绍一下如何进行不停机且安全可控得进行平滑升级Nginx。

1. 实验环境说明

操作系统:Rockylinux9.4当前nginx是编译安装部署路径:/data/nginx从nginx1.26.2升级到1.29.0

2. 升级前先备份!非常关键!

线上升级,没备份 = 自杀式升级。

全量备份:

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

谨记:先备份后操作!如果可以测试环境先行!

来源:https://www.51cto.com/article/819535.html
上一篇深入解析:用 lsof 揪出“幽灵文件”释放磁盘空间 下一篇联想万全大模型训推一体解决方案荣获2025中国算力大会“年度重大突破成果奖”
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
OpenClaw手机App上线,结果翻车了
科技数码 · 2026-07-01

OpenClaw手机App上线,结果翻车了

OpenClaw 官方宣布,已正式推出 iOS 和 Android 原生移动 App,用户如今可以在手机上使用这款主打“能真正帮你做事”的个人 AI 助手。官方在 X 上给出的定位也很直接:把 Agent 放进口袋里,让用户可以在移动端处理频道消息、任务和回复。从功能上看,OpenClaw 移动端并

优必选CEO周剑:家庭机器人生态核心投入过半精力
科技数码 · 2026-07-01

优必选CEO周剑:家庭机器人生态核心投入过半精力

先说几个核心判断:优必选正在布局一盘长远战略。创始人兼CEO周剑在近期一场媒体沟通会上,直接亮出了公司未来的发展路线——工业、商用、家庭陪伴机器人三条业务主赛道并行推进,现阶段每条线各占约一半精力。一边是已经能够稳定创造收入的工业场景,另一边则是他眼中“最具想象力与未来空间”的家庭陪伴领域。工业人形

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛
科技数码 · 2026-07-01

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛

6月30日,申银万国在光连接系列研报中重点指出,MPO光连接器领域的投资机会值得高度关注。通俗来说,随着AI算力集群持续扩张,光互联升级带来的连锁效应——数据中心光纤通道数量、前面板端口密度、机柜内光纤管理复杂度——均在同步攀升。光连接器的角色早已超越传统的低价值标准件,如今它直接决定着链路插损、可

龙岗AR实景剧本游内测体验短板有效破解之道
科技数码 · 2026-07-01

龙岗AR实景剧本游内测体验短板有效破解之道

在今年龙岗区第二届人工智能与机器人发展大会上,区级部门一次性推出了7个AI“龙搭子”。其中,名为“龙导游”的成果成为文商旅融合领域的核心亮点。据南都N视频记者了解,依托“龙导游”打造的全区全域AR实景剧本游“龙岗大陆”,已在今年五一假期发布了内测版本。经过一个月市场验证后,该项目正式启动面向全社会的

南下资金6月30日净买入中芯国际与建滔积层板
科技数码 · 2026-07-01

南下资金6月30日净买入中芯国际与建滔积层板

6月30日,南下资金持续大举买入港股,单日净流入金额高达58 95亿港元。接下来,我们直接盘点哪些个股获得资金青睐、哪些遭到减持: 净买入方面,中芯国际领跑全场,单日吸金19 33亿港元;建滔积层板紧随其后,净买入10 59亿港元;腾讯控股获得7 65亿港元净流入;智谱(02513 HK)也有6 5