Nginx(2)_Nginx热部署升级和回滚原理及实现

配置文件重新加载原理

  1. 修改nginx.conf配置文件
  2. 执行reload或者HUP信号进行重启
  3. Master使用新的配置文件启动新配置的worker进程
  4. 旧的进程处理完原来的用户请求之后退出
  5. 最后由新进程处理用户请求,整个过程平滑过渡,用户无感知

Nginx热部署原理

  1. 使用新编译好的/sbin/nginx文件替换旧的nginx文件
  2. 向旧的Master进程发送USR2信号
  3. Master进程修改pid文件,并给pid文件修改后缀为.oldbin
  4. Master进程使用新的nginx二进制文件启动新的Master进程,此时新旧进程同时存在
  5. 向旧的Master进程发送WINCH信号,旧的Worker进程退出
  6. 回滚旧的nginx,向旧的Master进程发送HUP信号,向新的Master进程发送QUIT信号

Nginx热部署实现步骤

  1. 备份nginx文件
    cp nginx nginx.back
    在这里插入图片描述

  2. 用新版nginx文件替换旧nginx文件

  3. 查看一下当前Nginx的Master进程
    ps -ef | grep nginx
    Nginx(2)_Nginx热部署升级和回滚原理及实现_第1张图片

  4. 向Master进程发送USR2信号,促使旧的master进程创建新的master进程和新的worker进程
    kill -s usr2 229479

  5. 向旧的Master进程发送信号,停止旧的worker进程
    kill -s WINCH 229479

  6. 退出旧的Master进程
    kill -s quit 229479

Nginx回滚步骤

  1. 备份Nginx文件,并替换成原来的nginx文件
  2. 向新的Master进程发送USR2信号,再创建一个新的Master进程
    kill -s usr2 229484
  3. 再向旧的Master进程发送信号,停止旧的worker进程
    kill -s WINCH 229484
  4. 退出旧的Master进程
    kill -s quit 229484

你可能感兴趣的:(Nginx,nginx)