Nginx在线服务状态下平滑升级或新增模块的详细操作

今天应开发的需求,需要在Nginx增加一个模块,并不能影响现有的业务,所以就必须要平滑升级Nginx,好了,不多说了

1:查看现有的nginx编译参数

  /usr/local/nginx/sbin/nginx -V

2:按照安装nginx的方法进行安装,只需要到make,千万不要make install

3: 备份旧版本的nginx可执行文件(期间nginx不会停止服务)

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

4:复制新的nginx二进制文件,进入新的nginx源码包

    cp objs/nginx /usr/local/nginx/sbin/

5: 测试新版本的nginx是否正常

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

6: 给nginx发送平滑迁移信号(若不清楚pid路径,请查看nginx配置文件)

   kill -USR2 `cat /var/run/nginx.pid`

7:查看nginx pid,会出现一个nginx.pid.oldbin

8:从容关闭旧的Nginx进程

 kill -WINCH `cat /var/run/nginx.pid.oldbin`

9:此时不重载配置启动旧的工作进程

  kill -HUP `cat /var/run/nginx.pid.oldbin`

10:结束工作进程,完成此次升级

   kill -QUIT `cat /var/run/nginx.pid.oldbin`

11:验证Nginx是否升级成功

   /usr/local/nginx/sbin/nginx -V

  

 

 

posted @ 2016-11-22 18:27  为生活而努力  阅读(1962)  评论(0编辑  收藏  举报