热升级Nginx

Sakura 发布于 2023-12-03 159 次阅读


热升级nginx

热升级流程

  1. 将旧的Nginx文件替换成新的Nginx文件(注意备份)
  2. 向Master进程发送USR2信号
  3. Master进程会修改pid文件,加后缀.oldbin
  4. Master进程用新的Nginx文件启动新的Master进程
  5. 向老的Master进程发送QUIT信号,关闭老的Master进程
  6. 回滚:向老的Master进程发送HUP(重载reload),向新Master进程发送QUIT信号(退出quit)

具体操作命令

# 备份nginx文件
cp nginx nginx.old
# 将旧的Nginx文件替换成新的Nginx文件
cp -f nginx /usr/local/nginx/sbin/
# 向旧的Nginx发送信号
kill -USR2 旧Master的pid
kill -WINCH 旧Master的pid
# 退出旧的Master
kill -QUIT 旧Master的pid
#  回滚 如果升级发现错误 可以回滚升级 前提是没有退出旧的Master进程
kill -HUP 旧Master的pid
kill -QUIT 新Master的pid
# 如果回滚了的话海域要还原备份文件
rm nginx -rf
mv nginx.old nginx