首页 > nginx > 不关闭服务平滑升级 nginx 程序

不关闭服务平滑升级 nginx 程序

2020年5月17日 发表评论 阅读评论

老版本的 centos6 使用System V 脚本启动程序,centos7 使用Sytemd 服务单元启动服务。

本文介绍直接使用命令行工具平滑升级nginx,所谓平滑升级就是不中断服务,把nginx旧版程序替换为新版程序。

开始前我们需要编译好新版本的nginx 。可能是处于种种原因:升级版本、打开原来没打开的参数等等,都会重新编译程序。

新版本的 nginx 程序位于 /usr/local/src/nginx-1.18.0/objs/nginx 。

当前运行的 nginx 位于 /usr/local/nginx/sbin/nginx 。

 

备份旧版程序,以防出现问题时能有退路,这是一个无论做什么都要养成的好习惯。动手之前摸清楚环境,做好现场保护,不然不能轻易动手。

删除nginx文件

拷贝新程序到 /usr/local/nginx/sbin/

查看旧版程序的进程号,老程序的主进程的进程号是28430:

发送 USR2 (kill -USR2 pid)信号给主进程。主进程将重命名它的 .pid 文件为 .oldbin ,然后执行新的可执行程序,依次启动新的主进程和新的工作进程,新进程的主程序进程号是24690:

 

发送 WINCH 信号给旧的主进程24830,然后,它的工作进程就将开始从容关闭。

 

旧的工作进程处理了所有已连接的请求后退出,就仅由新的工作进程来处理输入的请求,只剩旧程序的master进程

 

发送 QUIT 信号给旧的主进程使其退出而只留下新的服务器运行

 

分类: nginx 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.