当前位置: 首页
科技数码
Nginx 平滑升级的实战指南!(含备份+业务0中断+回滚)

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

热心网友 时间:2025-12-15
转载

在实际生产环境,安全部门一般都会定期去扫描程序漏洞,基本都需要升级版本。今天我们就分享一下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

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
2026上海网络视听创作者大会复兴岛开幕万镜生花活动指南

2026上海网络视听创作者大会复兴岛开幕万镜生花活动指南

2026年5月底,上海网络视听创作者大会将于杨浦复兴岛举办。上海通过政策支持、产业基地建设及专项扶持,构建了从政策、配套到人才的全方位支撑体系。复兴岛作为“全球创客岛”,以其科创氛围与生态景观,为链接全球创意、孵化新兴力量提供理想环境。大会旨在为创作者提供洞察行业未来趋势的。

时间:2026-05-24 14:34
中国空间站启动钙钛矿电池首次动态服役实验

中国空间站启动钙钛矿电池首次动态服役实验

神舟二十三号飞船携带钙钛矿电池升空,将首次在中国空间站接受真实太空环境的动态服役考验。太空环境综合了微重力、强辐射等极端因素,可获取地面难以模拟的电池性能衰减数据。实验旨在验证其在长期太空环境下的实际能力,为未来航天器、深空探测及地外基地的新能源应用积累。

时间:2026-05-24 14:33
雷军反思产品策略小米SU7两款新车全面对标特斯拉

雷军反思产品策略小米SU7两款新车全面对标特斯拉

小米发布YU7标准版与GT版,售价23 35万和38 99万元。雷军承认此前砍掉标准版是错误,新车续航643公里,配置高端且价格低于特斯拉ModelY。GT版性能升级,零百加速2 92秒,续航705公里。雷军对比ModelY销量,透露GT版因工艺复杂产能有限,2026年交付目标面临挑战。

时间:2026-05-24 14:33
iOS 27相机与照片应用升级:新增自定义功能与视觉智能优化

iOS 27相机与照片应用升级:新增自定义功能与视觉智能优化

苹果计划在iOS27中升级相机与照片应用。相机界面将支持自定义布局,允许用户调整常用功能位置。视觉智能功能将更深度集成,新增扫描食品标签、识别名片等能力。相册将引入三项AI编辑工具:扩展画幅、增强画质、重构视角。此次更新旨在强化用户控制、提升AI易用性,构建更强大的个性化影像体验。

时间:2026-05-24 14:33
全球车企放缓纯电转型步伐 多元动力并行成理性新方向

全球车企放缓纯电转型步伐 多元动力并行成理性新方向

全球车企正从激进纯电转向混动与纯电并行。福特、本田等企业缩减纯电投入,扩大混动产品线,以应对市场放缓与技术瓶颈。混动技术凭借成熟可靠、成本可控的优势,成为平衡转型与短期生存的关键。行业电动化趋势不变,但发展路径更趋务实与多元。

时间:2026-05-24 14:32
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程