码迷,mamicode.com
首页 > 其他好文 > 详细

nginx平滑升级

时间:2015-03-10 15:38:11      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

      初学nginx,用的苗泽老师的《Nginx高性能Web服务器详解》作参考,在升级这块儿,书上用nginx -g USR2,我没做出来,还有,书上平滑重启使用nginx -g HUP [-c newConfile],这个我测试也没弄出来,-g选项不是这么用的吧。希望知道的网友可以为我解惑

     于是在网上查了资料,整理如下:

1.查看之前的编译选项

  nginx -V 

2.备份旧版本nginx主程序

  mv /usr/local/nginx/sbin/nginx   /usr/local/nginx/sbin/nginx.old 

3.编译新版nginx,使用之前的选项

  ./configure .......

 make (有的资料没提到这一步,我发现若不make,则在objs下没有nginx程序;也有的资料提到make upgrade,这个之后再测试)

4.在源码目录中的objs目录下找到新的nginx主程序

  cp nginx /usr/local/nginx/sbin/ 

此时nginx -v可看到新版本号

nginx -t测试新版是否正常 

5.平滑升级

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

此时,在logs目录下,之前的pid文件变为nginx.pid.oldbin

ps -ef | grep nginx可以看到新旧的nginx都在运行

关闭旧的worker进程 

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

关闭旧的master进程,同时nginx.pid.oldbin文件也没了

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


Nginx可接收信号

TERM或 INT                快速停止nginx

QUIT                            平缓停止nginx

HUP                            平滑重启

USR1                            重新打开日志文件,常用于日志切割

USR2                            平滑升级

WINCH                        平缓停止worker process,用于nginx平滑升级

nginx平滑升级

标签:

原文地址:http://my.oschina.net/cqslpxzzp/blog/384744

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!