在生产环境中对Nginx平滑升级

环境

服务器:192.168.10.181

系统:CentOS 6.0

当前Nginx版本:1.0.8

升级nginx版本:1.1.5

操作过程

1、切换至root用户

clip_image001[7]

2、查看当前运行的Nginx的主进程

[root@Nginx canyouNgx]# ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

3、备份旧版本

[root@Nginx canyouNgx]# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

4、解压Nginx-1.1.5源码包,执行模块配置

[root@Nginx nginx-1.1.5]# ./configure

5、编译安装新版本

[root@Nginx nginx-1.1.5]# make && make install

6、启动新版本的Nginx

发送 USR2 信号到旧版本的 PID,这样做会启动新版本,但是旧版本也不会退出, 两个版本会同时运行

[root@Nginx nginx-1.1.5]# kill -USR2 6294

7、关闭旧版本的nginx进程

发送 WINCH 信号到旧版本 PID,此时用 ps aux|grep nginx 可以看到旧版本 Nginx 的 worker 会逐渐退出,最后所有请求都会由新版本的 Nginx 处理

[root@Nginx nginx-1.1.5]# kill -WINCH 6294

8、彻底关闭旧版本

最后测试新版本没有问题后可以彻底停掉旧版本,发送 QUIT 信号到旧版本的 PID

[root@Nginx nginx-1.1.5]# kill -QUIT 6294

9、查看当前的nginx主进程号

[root@Nginx nginx-1.1.5]# ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

10、查看当前的nginx版本

[root@Nginx nginx-1.1.5]# /usr/local/nginx/sbin/nginx -V

PS:

如果测试后想恢复到旧版本的话,发送 HUP 信号到旧版 PID

kill -HUP PID
关闭新版本,发送 QUIT 到新版本 PID,如果着急,也可以用 TERM

kill -QUIT PID
最后把备份的 Nginx 替换回去

rm -rf /usr/local/nginx/sbin/nginx
mv /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx

转载于:https://my.oschina.net/yankunren/blog/70040

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值