nginx热部署实现版本升级

在nginx/sbin目录下,有一个文件叫nginx,是nginx的二进制可执行文件,当nginx需要升级的时候,我们可以直接将新的nginx二进制文件替换掉这个旧的二进制文件。然后通过热部署,实现nginx版本的平滑升级。

热部署的步骤如下:
  • 备份sbin目录下旧的nginx
  • 将升级过的nginx二进制文件放入sbin目录下
  • 用ps -ef | grep nginx命令找到旧nginx的master进程的pid(假设值为1000)
  • 给1000号进程发送命令:kill -USR2 1000(这时候执行ps -ef | grep nginx命令可以看到系统重新开启了一个nginx master进程以及n个worker进程,旧的nginx master进程和worker进程依旧存在,只是旧的nginx不在监听设置的端口,现在请求会平滑过渡到新的nginx进程上)。还会发现,新的master进程的父进程id就是旧的master进程的id
    在这里插入图片描述
  • master进程会将nginx.pid文件重命名为nginx.oldbin,并将新的master pid存放在nginx.pid文件中
    在这里插入图片描述
  • 向旧的nginx发送关闭信号:kill -WINCH 1000(这时候旧的nginx worker已经kill掉了,但是旧的nginx master依旧存在,这是因为为了做版本回退)
    在这里插入图片描述
回滚流程:
  • 向旧的master发送HUP信号,旧的master进程会重新拉起一个worker进程(黄色区域的worker进程的父进程id为就的master进程的id)
  • 向新的master发送QUIT信号,新的master进程会及其它的worker进程都会退出,并且删除master.pid文件,恢复master.oldbin文件为master.pid文件
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值