nginx安装包_nginx版本平滑升级

软件新版有了更棒的功能?当前版本有安全漏洞?架构调整,需要新版本来支持?这些场景是不是很熟悉?你可能条件反射的就说出:“升级版本啊!”是的,运维人永远无法避免的一个工作就是软件的版本升级

本篇文章简单介绍nginx的版本如何在线平滑升级。

本文举例nginx1.13.9升级到1.14.2版本,nginx主进程id是1533

c795c40fa369a81267597fe506ed150e.png

0bad91f309961a555a956161b0fefbb9.png

1·备份


将当前的nginx安装目录备份一下,以防外一

cp -r nginx nginx_1.13.9 553fd559e41d51f2d43dc7139188bbec.png

2·重新编译安装


记住要安装到当前nginx的安装目录中

2.1 升级版本

将新的nginx版本安装包,按照我另一个文章nginx-安装&启动&停止&平滑重启的步骤进行安装./configure  --prefix=/usr/local/nginx makemake install

2.2 添加、删除模块

在原先的版本的nginx安装包下,重新走一遍安装流程,在./configure  的时候选择需要编译的模块

2.3 安装完之后检查版本

安装完之后,检查 下版本,已经是1.14.2了

91806bc83f75bf433c5eda50461e89c9.png

3·新旧并行


kill -USR2 1533(旧版本主进程id)旧版本nginx的主进程将重命名它的.pid文件为.oldbin(如下面截图)然后会执行新版本的nginx可执行程序,依次启动新版本的主进程和新的worker进程(如下面截图,4657就是新版本nginx的主进程)此时,新旧版本的nginx实例会同时运行,共同处理输入的请求。

0900b60b27f6a873f14d1168ee2816bf.png

4·停老版本nginx的worker进程


开始停老版本nginx的实例,发送WINCH信号给老版本nginx的进程,从容关闭老版本nginx的worker进程(主进程不关闭)kill -WINCH 1533(旧版本主进程id)一段时间之后,老版本的工作进程处理完自己所有已连接的请求后退出,由新版本的工作进程来处理输入的请求。下面截图可以看到。老版本nginx的worker进程已经都不在了,只剩主进程还在

0de14cb074f197dc5502087b936ea64e.png

5·决定完成升级还是回退


此时,可以决定是使用新版本还是恢复到旧版本

5.1 完成升级,使用新版本

kill -QUIT 1533(旧版本主进程id)这样就只剩下新版本nginx的进程了,如下面截图

ffd234a166457f1376806412d9e459a9.png

5.2 回退

kill -HUP 1533(旧版本主进程id)【旧版本nginx会在不重载配置文件情况下启动工作进程】kill -QUIT 4657 (新版本主进程id)【从容关闭新版本nginx的worker进程】kill -TERM 4657(新版本主进程id)【强制退出新版本的nginx】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值