首页 > 其他 > 详细

nginx的平滑升级

时间:2021-08-13 10:22:47      阅读:15      评论:0      收藏:0      [点我收藏+]

nginx的平滑升级

方案(一)
1. 查看原编译参数
[root@anonymous ~]# nginx -V
[root@anonymous ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module

2. 解压缩,进入软件安装目录,添加echo-nginx-module模块
预编译/编译/安装:
[root@anonymous ~]# tar xf nginx-1.20.1.tar.gz
[root@anonymous ~]# cd nginx-1.20.1
[root@anonymous nginx-1.20.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --add-module=/usr/src/echo-nginx-module
root@anonymous nginx-1.20.1]# make && make install
3. 直接升级:make upgrade

方案(二)
1. 查看原编译参数
[root@anonymous ~]# nginx -V
[root@anonymous ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module

2. 解压缩,进入软件安装目录,添加echo-nginx-module模块
预编译/编译/安装:
[root@anonymous ~]# tar xf nginx-1.20.1.tar.gz
[root@anonymous ~]# cd nginx-1.20.1
[root@anonymous nginx-1.20.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --add-module=/usr/src/echo-nginx-module
root@anonymous nginx-1.20.1]# make && make install
3. 生成新的master进程:
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
[root@node3 nginx-1.16.0]# ps -ef |grep "[n]ginx"
root   8054   1 0 21:07 ?    00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
nginx   8097 8054 0 21:09 ?    00:00:00 nginx: worker process
nginx   8098 8054 0 21:09 ?    00:00:00 nginx: worker process
root   8134 8054 0 21:13 ?    00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
nginx   8135 8134 0 21:13 ?    00:00:00 nginx: worker process
nginx   8136 8134 0 21:13 ?    00:00:00 nginx: worker process
4. 优雅退出老worker进程:
# 向老的master进程发信号:
[root@anonymous nginx-1.20.1]# kill -WINCH 8054
[root@anonymous nginx-1.20.1]# ps -ef |grep "[n]ginx"
root   8054   1 0 21:07 ?    00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
root   8134 8054 0 21:13 ?    00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
nginx   8135 8134 0 21:16 ?    00:00:00 nginx: worker process
nginx   8136 8134 0 21:16 ?    00:00:00 nginx: worker process
5. 抉择:
5.1 回滚:
5.1.1 重新拉起老的worker进程:
[root@anonymous nginx-1.20.1]# kill -HUP 8054
[root@anonymous nginx-1.20.1]# ps -ef |grep "[n]ginx"
root   8054   1 0 21:07 ?    00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
root   8134 8054 0 21:13 ?    00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
nginx   8135 8134 0 21:16 ?    00:00:00 nginx: worker process
nginx   8136 8134 0 21:16 ?    00:00:00 nginx: worker process
nginx   8154 8054 1 21:19 ?    00:00:00 nginx: worker process
nginx   8155 8054 1 21:19 ?    00:00:00 nginx: worker process
5.1.2 退出新的master进程:
[root@anonymous nginx-1.20.1]# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`
[root@anonymous nginx-1.20.1]# ps -ef |grep "[n]ginx"
root   8054   1 0 21:07 ?    00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
nginx   8154 8054 0 21:19 ?    00:00:00 nginx: worker process
nginx   8155 8054 0 21:19 ?    00:00:00 nginx: worker process
5.2 新生:
# 经过一段时间测试,服务器没问题,退出老的master:
root@anonymous nginx-1.20.1]# kill -QUIT 8054
root@anonymous nginx-1.20.1]# ps -ef |grep "[n]ginx"
root   8134   1 0 21:24 ?    00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
nginx   8135 8134 0 21:24 ?    00:00:00 nginx: worker process
nginx   8136 8134 0 21:24 ?    00:00:00 nginx: worker process

nginx的平滑升级

原文:https://www.cnblogs.com/liangyd/p/15135519.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!