nginx不中断升级

本文介绍了如何在不中断服务的情况下,使用Nginx的平滑升级流程,包括定位旧版本的二进制文件和PID,优雅关闭旧版本worker进程,以及在出现问题时的回滚策略。通过发送特定信号,实现新旧版本的无缝切换,并确保在整个过程中请求的正常处理。
摘要由CSDN通过智能技术生成

定位旧版本nginx的二进制执行文件和PID文件位置,例如 /usr/local/nginx/sbin/nginx和/usr/local/nginx/logs/nginx.pid

查询旧版本nginx的master进程的PID,记录为 OldMasterPID

我们采用官方命令

ps axw -o pid,ppid,user,%cpu,vsz,wchan,command | egrep '(nginx|PID)

(截图待补充)

将新版本的nginx覆盖掉旧版本,对旧版本的二进制文件进行备份的操作是可选的,后边将会说到为什么可以不用备份

执行命令 kill -s USR2 OldMasterPID

执行成功后,可以发现nginx已经自动备份了旧版本的pid文件和二进制文件,二进制文件会备份为 /usr/local/nginx/sbin/nginx.old (这就是为什么前面提到可以不用备份),PID文件会备份为 /usr/local/nginx/logs/nginx.pid.oldbin,而且此时新旧两个版本的nginx共同运行

(截图待补充)

执行命令 kill -s WINCH OldMasterPID,将会优雅关闭旧版本的worker进程,此时所有的请求将全部转到新版本的worker进程进行处理

如果测试有问题需要回滚

查询新版本nginx的master进程的PID,记录为NewMasterPID

ps axw -o pid,ppid,user,%cpu,vsz,wchan,command | egrep '(nginx|PID)

执行命令 kill -s HUP OldMasterPID

执行命令 kill -s TERM NewMasterPID

如果测试没有问题,则执行命令 kill -s QUIT OldMasterPID

参考文档

http://nginx.org/en/docs/control.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值