8. nginx热升级

1. 热升级: 在nginx不停止服务的情况下, 升级nginx服务. 在升级的过程中, 可能会出现很多情况, 比如老的worker进程退不掉, 新的worker进程有问题, 可能需要回滚.

2. 热升级流程:

  1) 备份;

  2) 向master进程发送USR2信号;

  3) master进程修改pid文件名, 加后缀.oldbin;

  4) master进程会用新的nginx二进制可执行文件启动新的master进程;

  5) 向老的master进程发送WINCH信号, 优雅的关闭老的worker, 不过老的master进程依然在, 为了方便回滚;

  6) 如果升级后出现问题需要回滚, 向老的master发送HUP信号, 向新的master发送QUIT信号.

3. 优雅的关闭worker时, 有可能需要很长时间才会关闭掉所有的老的worker进程, 可以通过设置 worker_shutdown_timeout 强制关闭所有的老的worker进程.

posted @ 2019-05-06 22:32  dowait  阅读(272)  评论(0编辑  收藏  举报