详解nginx平滑升级的过程
1、开始之前首先查看当前的使用版本以及编译时的参数:
[root@www~]#/usr/local/nginx/sbin/nginx-V nginxversion:nginx/1.12.2 builtbygcc4.4.720120313(RedHat4.4.7-23)(GCC) builtwithOpenSSL1.0.1e-fips11Feb2013 TLSSNIsupportenabled configurearguments:--user=www--group=www--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_ssl_module
将编译参数复制出来,编译新版本的时候会用到。
2、下载新版本:http://nginx.org/en/download.html
cdnginx-1.14.0 ./configure--user=www--group=www--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_ssl_module make
3、执行完成之后,不需要makeinstall,备份原来的二进制启动文件,然后将新版的启动文件拷贝过去
mv/usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx.bak [root@wwwnginx-1.14.0]#cpobjs/nginx/usr/local/nginx/sbin/nginx
4、测试一下复制过来的文件是否生效:
[root@wwwnginx-1.14.0]#/usr/local/nginx/sbin/nginx-t nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok nginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful
5、发送USR2信号给nginxmaster进程(nginx服务接收到USR2信号后,首先会将旧的nginx.pid文件添加后缀.oldbin,变为nginx.pid.oldbin,然后执行新版本的二进制文件启动服务,如果新的服务启动成功,系统中将有新旧两个Nginx服务共同提供web服务)
kill-USR2`cat/usr/local/nginx/logs/nginx.pid` [root@wwwnginx-1.14.0]#ps-ef|grepnginx root226441023:30?00:00:00nginx:masterprocess/usr/local/nginx/sbin/nginx www2264822644023:30?00:00:00nginx:workerprocess root2578422644023:47?00:00:00nginx:masterprocess/usr/local/nginx/sbin/nginx www2578925784023:47?00:00:00nginx:workerprocess
6、通过发送WINCH信号(平缓停止workerprocess)和QUIT信号(平缓停止Nginx服务)停止旧的Nginx服务进程
kill-WINCH`cat/usr/local/nginx/logs/nginx.pid.oldbin` kill-QUIT`cat/usr/local/nginx/logs/nginx.pid.oldbin`
7、升级完成,最后看一下nginx版本:
/usr/local/nginx/sbin/nginx-v nginxversion:nginx/1.14.0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。