nginx热部署升级

一、热升级流程

1、将旧nginx文件换成新的nginx二进制文件(注意备份);

2、想master进程发送USR2信号;

3、master进程修改pid文件名,加后缀.oldbin;

4、master进程用新nginx文件后启动新master进程

5、向老master进程发送WINCH信号,关闭老worker进程;

6、回滚:向老master发送HUP信号,向新master发送QUIT;

二、升级过程

#版本

nginx version: nginx/1.12.2

1、查看nginx状态

2.png

2、升级nginx版本即升级二进制文件

路径:/nginx/sbin/nginx

1)备份原来的文件,更换上新的nginx二进制文件

# cp sbin/nginx sbin/nginx.old

2)编译新版本到make后,复制二进制nginx文件(切记需要编译到同一个目录

# cd nginx-1.14.2/

# ./configure --prefix=/usr/local/nginx12

3make

# cp -r objs/nginx /usr/local/nginx12/sbin/ -f

3)查看二进制文件

cd /usr/local/nginx/sbin/

3.png

4)发送升级信号给进程号

# kill -USR2 1501     #master线程

4.png


5)优雅关闭老线程

# kill -WINCH 1501

7.png

备注:保留旧master线程,可以用作回滚使用,如果确认不需要,可以kill掉

4)查看版本

8.png

备注:如果我们升级完后检查有问题,可采取进行下一步操作进行滚回。



3、回滚操作

1)重会备份文件

# cp -f  /usr/local/nginx12/sbin/nginx.old /usr/local/nginx12/sbin/nginx

2)执行平滑造成,生成新的进程

# kill -HUP 4197

# kill -QUIT 4197

9.png

master进程回滚到1501,worker进程也重新生成了,检查网站没问题到此完成回滚操作。

3)查看版本

10.png


猜你喜欢

转载自blog.51cto.com/13941177/2393054