nginx平滑升级

nginx支持信号控制,可通过信号控制对nginx进行平滑升级。Nginx支持的信号如下:

1、TERM,INT  ---   快速停止nginx

2、QUIT      ---  平滑停止nginx

3、HUP       ---   读取新的配置文件,停止老的worker进程,启动新的worker进程

4、USR1      ---  重新打开日志文件

5、USR2      ---   平滑升级可执行文件

6、WINTCH   ---    平滑停止worker进程

利用以上信号量可以对nginx进行平滑升级,步骤如下:

1、 编译新的nginx可执行文件,替换老的文件(做好备份)。

2、 执行kill -USR2 nginx.pid,执行完之后会使用新的可执行文件启动一个master进程及相应的worker进程。此时会有两个master进程,我们将两个的pid用nginx.pid.new及nginx.pid.old表示。

3、 停掉老的nginx worker进程,执行命令kill -WINCH nginx.pid.old,执行之后可以看到老的进程的worker进程停止了,只剩余master进程,此时可以进行验证,查看日志确保升级的nginx正常。

4、 验证完成后关闭老的nginx master进程,执行命令kill -QUIT nginx .pid.new,执行完毕后老的nginx master进程就停止了,只剩余新的master及worker进程,升级完成。

5、 回退可以在第3步完成后第4步未执行之前使用kill -HUP nginx.old.pid,也可以看做是一次升级的过程,可以按照上面步骤进行操作。

你可能感兴趣的:(nginx平滑升级)