平滑升级

平滑升级

所谓平滑升级,就是在不影响当前程序运行的情况下,对Nginx版本进行升级、添加/删除服务器模块

具体做法如下:

1、下载新版本

2、执行make

3、对旧版本的 nginx 命令进行copy备份 如:cp nginx nginx_version

4、使用新版本的nginx命令去覆盖旧版本的nginx

cp -rfp nginx(new)  old_nginx_path

5、sudo kill -USR2 旧版本的Nginx主进程号

旧版本Nginx的主进程将重命名它的pid文件为.oldbin ,然后执行新的程序

6、sudo nginx -c /usr/local/nginx/nginx.conf

启动新的nginx

此时新旧版本的Nginx实例会同时运行,共同处理请求

7、sudo kill -WINCH 旧版本Nginx主进程号

从容停止旧版本Nginx的工作进程

8、过了一会儿,旧工作进程处理完了已连接的请求,自己会退出,由新的工作进程来处理新的请求

9、由我们自己判断是继续使用新的工作进程,还是恢复到旧版本

恢复旧版本:

sudo kill -HUP 旧的主进程号    Nginx将在不重载配置文件的情况下启动它的工作进程

sudo kill -QUIT 新的主进程号 从容关闭其工作进程

sudo kill -TERM 新的主进程号 强制退出

如果还是无法关闭新开启的进程,则直接使用kill命令

 

新的主进程退出后,旧的进程会移除  .oldbin 前缀,恢复为.pid文件,至此,一切又回到了升级前的模样

 

如果希望留下新的服务器,可以发送QUIT信号给旧的主进程,使其退出

sudo kill -QUIT 旧的主进程号

 

posted @ 2016-08-24 23:19  csnmd  阅读(597)  评论(0编辑  收藏  举报