架构师的成长之路初片~Nginx篇~平滑升级

进行平滑升级

1.当前环境

CentOS-7.x   Nginx:1.12.2

2.查看当前版本并下载新版本Nginx

/usr/local/nginx/sbin/nginx -v# nginx version: nginx/1.12.2wget -c http://nginx.org/download/nginx-1.17.6.tar.gz# 下载的版本为nginx-1.17.6

3.开始平滑升级

tar -xzf nginx-1.17.6.tar.gz# 解压源码包cd nginx-1.17.6

./configure --with-stream --with-http_stub_status_module --with-http_ssl_module

 

make# 执行编译,切记不要安装也就是不要去执行 make install

 

对Nginx执行文件进行更新

cd /usr/local/nginx/sbin

# 进入nginx的执行文件目录内

mv nginx nginx.old

# 将旧版本Nignx执行文件备份为nginx.oldcp /root/nginx-1.17.6/objs/nginx .

# 将新版本Nginx执行文件移动到当前目录内

 

进行平滑重启

/usr/local/nginx/sbin/nginx -t

# 检测新版本Nginx是否正常 正常为 successful

ps   -ef   |  grep nginx

# 查看旧版本nginx进程

 

 kill -USR2 4846# 向主进程发送USR2信号,Nginx会启动一个新版本的master进程和工作进程,和旧版一起处理请求

 

 此时再次查看Nginx进程就发现有俩Nginx在工作  ^^

 

 

 

 kill -WITCH 4846# 向原Nginx主进程发送WINCH信号,它会逐步关闭旗下的工作进程(主进程不退出),

  这时所有请求都会由新版Nginx处理kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin

`# 杀死旧版本Nginx主进程或者 kill -9 4846 也可以/usr/local/nginx/sbin/nginx -v

# ouput:nginx version: nginx/1.17.6

kill -WITCH 4846

# 向原Nginx主进程发送WINCH信号,它会逐步关闭旗下的工作进程(主进程不退出),这时所有请求都会由新版Nginx处理

kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

# 杀死旧版本Nginx主进程或者 kill -9 4846 也可以/usr/local/nginx/sbin/nginx -v

# ouput:nginx version: nginx/1.17.6

完成以上操作代表升级完成

 

 

 

 

 

总结:在平滑升级的过程中,切记编译完后不要   make install   (安装)

在升级的过程中,切记尽量不使用 kill  -9  这个命令。

 

 

 

 

posted @ 2021-04-11 22:13  樱花泪  阅读(57)  评论(0编辑  收藏  举报