任何的程序都存在漏洞的,nginx也不例外,那nginx怎么正确的升级新版本,如何不停止旧的Nginx基础上,nginx平滑升级的八个步骤如下:
1、到http://nginx.org/en/download.html下载最新稳定版本的nginx。
2、备份nginx二进制文件和配置文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.old
3、执行./configure命令,如
./configure --with-http_ssl_module --with-openssl=/path/to/openssl_src
可以执行/usr/local/nginx/sbin/nginx -V命令查看以前的编译参数。
4、执行make install clean来安装新的nginx。
5、为旧的nginx主进程发送USR2信号,这会启动新的nginx主进程而保留旧的nginx主进程。
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
6、发送WINCH信号到旧的nginx主进程以杀掉旧的nginx子进程。假设旧的主进程pid是123。
kill -WINCH 123
7、现在你可以测试网站访问是否正常,如果正常,执行以下命令退出旧的nginx主进程;如果不正常,请看第8步。
kill -QUIT 123
8、如果发现nginx不能正常服务,假设新的nginx主进程pid是321,分别执行以下命令以旧nginx替代新nginx。
kill -HUP 123 - 这会让旧的nginx主进程重新生成子进程继续服务
kill -QUIT 321 - 关闭新的nginx进程
kill -TERM 321 -强制退出nginx进程
然后你就可以保证服务器继续上线来检查升级失败的原因。