如果要对当前的Nginx服务器进行版本升级,应用新模块,如果用户访问量比较大的时候,如果需要在不影响客户的情况下进行升级的话,这时候就得考虑平滑升级了。
平滑升级的过程,Nginx服务器接受到USR2信号后,首先将旧的nginx.pid文件添加后缀.oldbin,变为nginx.pid.oldbin文件,然后执行新版本的Nginx服务器的二进制的文件启动服务,这个时候需要提前将编译好的新版本的二进制实现复制到sbin文件夹中。如果新的服务启动成功,系统中将有新旧两个Nginx服务共同提供Web服务。之后,需要向旧的Nginx服务器进程发送WINCH信号,使旧的Nginx服务平滑停止,并删除nginx.pid.oldbin文件。在发送WINCH信号之前,如果发现有什么错误,可以随时停止新的Nginx服务。
这里之前已经编译安装了naginx1.8.0。编译的时候只指定了按照路径 --prefix=/nginx/。这里演示从nginx1.8.0升级到nginx 1.9.6[root@c7node1 ~]# /nginx/sbin/nginx -V
nginx version: nginx/1.8.0
built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
configure arguments: --prefix=/nginx/
[root@c7node1 ~]# ss -tnl
LISTEN 0 12 *:80 *:*
这里为了测试升级过程中Web没有中断,提供一个脚本让其每秒去请求页面服务。并纪录到日志中[root@c7node1 test]#