如果要对当前的Nginx服务器进行版本升级,应用新模块,最简单的办法是停止当前Nginx服务,然后开启新的Nginx服务,但这样就会导致在一段时间内,用户无法访问服务器。
Nginx提供了平滑升级。
流程:
Nginx服务接收到USR2信号后,
首先将旧的nginx.pid文件(如果在配置文件中更改过这个文件的名字,也是相同的过程)添加后缀.oldbin,变为nginx.pid.oldbin文件;
然后执行新版本Nginx服务器的二进制文件启动服务。
如果新的服务启动成功,系统中将有新旧两个Nginx服务共同提供Web服务。
之后,需要向旧的Nginx服务进程发送WINCH信号,使旧的Nginx服务平滑停止,并删除nginx.pid.oldbin文件。
在发送WINCH信号之前,可以随时停止新的Nginx服务。