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
谨记:先备份后操作!如果可以测试环境先行!
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
消息称高通骁龙 8 Elite Gen6 Pro 处理器将支持 LPDDR6 内存
下一代安卓旗舰芯片革命:骁龙 8 Elite Gen6 Pro 正式官宣支持 LPDDR6 内存 安卓阵营即将迎来新一轮的性能飞跃。根据最新的供应链与行业爆料综合确认,高通下一代旗舰移动平台——骁龙 8 Elite Gen6 Pro,将率先实现对下一代 LPDDR6 内存标准的支持,这无疑将为来年旗
消息称一加 Ace6 至尊版搭载 8500mAh 电池、165Hz 屏、天玑 9500 芯片
一加 Ace6 至尊版最新爆料:天玑9500与8500mAh超大电池引领性能革新 近期,科技数码领域再度迎来重大爆料。根据知名数码博主 @熊猫很禿然 的最新信息,一加即将推出的 Ace6 至尊版有望在硬件配置上实现全新突破。据悉,该机型可能搭载行业领先的 8500mAh 超大容量电池,配备一块支持
6.99美元捡漏64GB内存条!因店员不识货“白送”
仅花7美元“捡漏”高端内存?一次令人啼笑皆非的零售乌龙 近日,海外科技社区热议一则真实趣闻:一位顾客在当地清算商店以极低价格“捡漏”高端硬件。据科技媒体Wccftech报道,这位幸运用户仅支付6 99美元,便购得一套64GB容量的英睿达(Crucial)DDR5-5600 SODIMM笔记本内存套装
博鳌首选中国豪车 腾势D9成为国际贵宾座驾
博鳌亚洲论坛再启幕:中国新能源车成礼宾接待新名片 2025年博鳌亚洲论坛于海南如期举行,全球政商领袖与思想界代表再度汇聚。细心观察可以发现,今年会场内外负责贵宾接送的礼宾车队已悄然焕新——以往常见的德系、日系豪华车型已被一批崭新的中国新能源MPV取代,其中最为瞩目的正是腾势D9。这一变化不仅体现在车
前 iQOO Z 系列产品经理马钰伦解答厂商为什么不出中高端 LCD 手机,称不再是一个“划算的选择”
前iQOO产品经理解读:为何中高端手机市场逐渐告别LCD屏幕? 中高端手机为何集体减少采用LCD屏幕?近期,前iQOO Z系列产品经理马钰伦进行了深入解读,将行业背后的现实考量清晰呈现。简而言之,LCD本身并非技术落后,关键在于从商业层面评估,它已成为一项性价比不高的选择。 ▲ 本站开箱:iQOO
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

