nginx版本升级,热部署以及回滚

it2024-07-23  40

Nginx热部署

步骤1: 查看现在的nginx状态

[root@test1 sbin]# nginx -v 显示: nginx version: nginx/1.12.2 [root@test1 sbin]# ps -ef | grep nginx 显示: root 9914 1 0 13:34 ? 00:00:00 nginx: master process nginx #9914为nginx的master进程号 nginx 9915 9914 0 13:34 ? 00:00:00 nginx: worker process #nginx的worker进程号

步骤2:备份nginx启动程序

我的nginx启动程序放在/usr/local/nginx/sbin/下 [root@test1 sbin]# mv nginx nginx.old

步骤3:将新版本的nginx移至到nginx的启动程序目录中

[root@test1 sbin]# cp /opt/nginx-1.17.3/objs/nginx /usr/local/nginx/sbin/ [root@test1 sbin]# ls 显示: nginx nginx.old

步骤4: 给nginx的master进程号发送需要进行版本更新信号

[root@test1 sbin]# kill -USR2 9914 #通过步骤1中我们得知nginx的master进程号
发送信息告知正在运行的老nginx我们需要进行版本更新,然后它会开启新nginx启动程序的master进程并保留老nginx的master进程

这时我们再查看nginx的进程状态

[root@test1 sbin]# ps -ef | grep nginx 显示: root 9914 1 0 13:40 ? 00:00:00 nginx: master process nginx #nginx的老master进程号 nginx 9915 9914 0 13:40 ? 00:00:00 nginx: worker process #nginx的老worker进程号 root 9920 9914 0 13:40 ? 00:00:00 nginx: master process nginx #9920为nginx的新master进程号 nginx 9921 9920 0 13:40 ? 00:00:00 nginx: worker process #nginx的新worker进程号

步骤5: 给nginx的master进程号发送优雅关闭老master启动的worker进程信号

[root@test1 sbin]# kill -WINCH 9914
优雅关闭老nginx启动程序的worker进程(此时老nginx启动程序的master进程还在,还可以进行版本回滚)

这时我们再查看nginx的进程状态

[root@test1 sbin]# ps -ef | grep nginx 显示: root 9914 1 0 13:41 ? 00:00:00 nginx: master process nginx root 9920 9914 0 13:41 ? 00:00:00 nginx: master process nginx #9920为nginx的新master进程号 nginx 9921 9920 0 13:41 ? 00:00:00 nginx: worker process #nginx的新worker进程号
这时可以看到老master进程生成的woker进程已经退出

------------------------------分割线-------------------------------

Nginx回滚

步骤1: 查看现在的nginx状态

[root@test1 sbin]# ps -ef | grep nginx 显示: root 9914 1 0 13:43 ? 00:00:00 nginx: master process nginx #nginx的老master进程号 root 9920 9914 0 13:43 ? 00:00:00 nginx: master process nginx #9920为nginx的新master进程号 nginx 9921 9920 0 13:43 ? 00:00:00 nginx: worker process #nginx的新worker进程号

步骤2: 给nginx的老master进程发送启动worker进程信号

[root@test1 sbin]# kill -HUP 9914 [root@test1 sbin]# ps -ef | grep nginx 显示: root 9914 1 0 13:45 ? 00:00:00 nginx: master process nginx #nginx的老master进程号 root 9920 9914 0 13:45 ? 00:00:00 nginx: master process nginx #9920为nginx的新master进程号 nginx 9921 9920 0 13:45? 00:00:00 nginx: worker process #nginx的新worker进程号 nginx 15887 9914 0 13:45? 00:00:00 nginx: worker process #nginx的老master刚启动的worker进程号

步骤3: 给nginx的新master进程号发送优雅关闭新master启动的worker进程信号

[root@test1 sbin]# kill -WINCH 9920 [root@test1 sbin]# ps -ef | grep nginx 显示: root 9914 1 0 13:45 ? 00:00:00 nginx: master process nginx #nginx的老master进程号 root 9920 9914 0 13:45 ? 00:00:00 nginx: master process nginx #9920为nginx的新master进程号 nginx 15887 9914 0 13:45? 00:00:00 nginx: worker process #nginx的老master刚启动的worker进程号

步骤4: 将备份的老nginx启动程序修改回

[root@test1 sbin]# mv nginx nginx.bak #将正在使用的新Nginx启动程序改名 [root@test1 sbin]# mv nginx.old nginx #将之前备份的nginx.old修改为nginx [root@test1 sbin]# nginx -v 显示: nginx version: nginx/1.12.2
最新回复(0)