首页 游戏 软件 资讯 排行榜 专题
首页
科技数码
Nginx 平滑升级的实战指南!(含备份+业务0中断+回滚)

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

热心网友
40
转载
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。

相关攻略

nginx之php、php-fpm相关配置
编程语言
nginx之php、php-fpm相关配置

想用nginx支持php项目?先搞定安装这关 要让Nginx顺利跑起PHP项目,第一步自然是安装Nginx本身,这个步骤比较常规,这里就不展开细说了。 咱们重点聊聊PHP和PHP-FPM的安装。这里有个经验之谈:尽量避免使用yum直接安装。为什么?因为通过yum安装后,你很可能找不到安装目录的具体位

热心网友
05.05
Nginx 动态封禁 IP 实战:从配置到落地全流程
业界动态
Nginx 动态封禁 IP 实战:从配置到落地全流程

构建动态IP黑名单:Nginx+Lua+Redis实战方案 服务器时不时遭遇恶意爬虫或攻击者的频繁请求,怎么办?一个行之有效的防御策略是建立动态的IP黑名单。简单说,就是把那些“不受欢迎”的IP地址列入名单,在一段时间内拒绝其所有访问请求。这不仅能有效拦截恶意流量,还能灵活设置封禁时长,实现自动化管

热心网友
04.22
Nginx之外为何还需网关?两大组件核心差异解析
科技数码
Nginx之外为何还需网关?两大组件核心差异解析

Nginx是一款很强大的高性能Web和反向代理服务,它是用C语言开发的,其核心优势占有内存少,并发能力强,非常适合应用在高并发场景、静态资源托管和请求的负载均衡等等。 在微服务架构普及的当下,即使项

热心网友
02.02
Nginx深色模式支持优化:解决用户夜间“亮瞎眼”痛点
业界动态
Nginx深色模式支持优化:解决用户夜间“亮瞎眼”痛点

3 月 18 日消息,名为 anvme 的用户昨日于 Nginx 的 Github 页面上,提交了为 Nginx 错误页面添加深色模式支持的请求,但这项请求于昨天被 Nginx 的开发者拒绝。该用

热心网友
12.20
Nginx 平滑升级的实战指南!(含备份+业务0中断+回滚)
科技数码
Nginx 平滑升级的实战指南!(含备份+业务0中断+回滚)

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

热心网友
12.15

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

红米Note11 Pro更新系统需连WiFi吗?
电脑教程
红米Note11 Pro更新系统需连WiFi吗?

红米Note 11 Pro系统升级,为何坚持要求连接Wi-Fi? 当红米Note 11 Pro收到MIUI或澎湃OS的系统更新推送时,官方总会明确提示:整个过程请在Wi-Fi网络环境下完成。这项要求并非随意设定,而是基于清晰的技术与体验考量。一次完整的系统升级包,其大小通常在2GB至4GB之间。如果

热心网友
05.05
小米13ultra有nfc功能吗
电脑教程
小米13ultra有nfc功能吗

小米13 Ultra的NFC功能深度解析:它如何重新定义“全场景智能交互”? 在旗舰手机领域,NFC功能看似已成为标配,但体验却千差万别。小米13 Ultra所搭载的全功能NFC方案,在“全能”与“好用”两个维度上树立了新的标杆。它不仅无缝集成了公交卡模拟、门禁卡复制、数字车钥匙等核心生活服务,更全

热心网友
05.05
嵌入式消毒柜电源插座位置必须外露吗?
电脑教程
嵌入式消毒柜电源插座位置必须外露吗?

嵌入式消毒柜电源插座安装指南:隐蔽式布局提升安全与美观 在规划嵌入式消毒柜的安装方案时,电源插座的布局方式直接影响到最终的整体效果与安全性。正确的做法是避免插座外露,采用隐蔽式安装。根据国家《住宅厨房设计规范》及主流厨电品牌的安装标准,推荐将插座预留在消毒柜后方或侧方的墙体内部,安装高度宜控制在距地

热心网友
05.05
魔音耳机操作说明包含充电指示吗?
电脑教程
魔音耳机操作说明包含充电指示吗?

是的,魔音(Beats)耳机充电状态一目了然,指示灯明确显示 当你为Beats头戴式耳机充电时,如何判断它是否已经充满?答案就藏在机身自带的五段式LED电量指示灯里。在充电过程中,这排指示灯会持续闪烁,实时反馈充电进度。一旦所有五个指示灯全部转为稳定常亮、不再闪烁,即代表电池已完全充满。整个充电周期

热心网友
05.05
博朗剃须刀如何识别型号?
电脑教程
博朗剃须刀如何识别型号?

博朗剃须刀型号全解析:从编码规则到选购技巧的终极指南 面对博朗剃须刀复杂的字母数字组合感到困惑?实际上,其型号命名体系逻辑严谨,是用户选购的核心依据。简单来说,型号首位的数字(1、3、5、7、9)直接代表产品系列,数字越大,通常意味着技术越先进、功能越全面、定位越高端。例如,顶级的9系旗舰机型普遍搭

热心网友
05.05