nginx平滑升级(从1.14.2至1.16.0)

1.开始之前首先查看当前的使用版本以及编译时的参数:
#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.14.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --http-client-body-temp-path=/var/tmp/nginx/client_body_temp/ --http-proxy-temp-path=/var/tmp/nginx/proxy_temp/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi_temp/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp/ --http-scgi-temp-path=/var/tmp/nginx/scgi_temp/ --with-openssl= --with-pcre
将编译参数复制出来,编译新版本的时候会用到。
2.下载新版本并编译
#tar -zxvf nginx-1.16.0.tar.gz -C /usr/local/src
#cd /usr/local/src/nginx-1.16.0
#./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --http-client-body-temp-path=/var/tmp/nginx/client_body_temp/ --http-proxy-temp-path=/var/tmp/nginx/proxy_temp/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi_temp/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp/ --http-scgi-temp-path=/var/tmp/nginx/scgi_temp/ --with-openssl= --with-pcre
#make (不要执行make install)
3.备份原来的二进制启动文件,然后将新版的启动文件拷贝到/usr/local/nginx/sbin中

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

#cp /usr/local/src/nginx-1.16.0/objs/nginx /usr/local/nginx/sbin/nginx
4.测试一下复制过来的文件是否生效
#/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
5.发送USR2信号给nginx master 进程(nginx服务接收到USR2信号后,首先会将旧的nginx.pid文件添加后缀.oldbin,变为nginx.pid.oldbin,然后执行新版本的二进制文件启动服务,如果新的服务启动成功,系统中将有新旧两个Nginx服务共同提供web服务)
#kill -USR2 `cat /var/run/nginx.pid`
ps -ef | grep nginx
root 1844 1 0 May30 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
www 1846 1844 0 May30 ? 00:00:00 nginx: worker process
www 1847 1844 0 May30 ? 00:00:00 nginx: worker process
root 6304 1844 0 15:30 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
www 6305 6304 0 15:30 ? 00:00:00 nginx: worker process
www 6306 6304 0 15:30 ? 00:00:00 nginx: worker process
root 6308 3280 0 15:31 pts/0 00:00:00 grep nginx

ls /var/run/ -l |grep nginx

-rw-r–r--. 1 root root 5 May 31 15:30 nginx.pid
-rw-r–r--. 1 root root 5 May 30 15:00 nginx.pid.oldbin
6.通过发送WINCH信号(平缓停止worker process)和QUIT信号(平缓停止Nginx服务)停止旧的Nginx服务进程
#kill -WINCH `cat /var/run/nginx.pid.oldbin`
#kill -QUIT `cat /var/run/nginx.pid.oldbin`
7.升级完成,最后看一下nginx版本
#/usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.16.0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值