升级流程
1 将旧的nginx文件替换新的nginx文件
2 向master进程发送usr2信号
3 master进程修该pid文件,加后缀.oldbin
4 master进程用新的nginx文件启动新的maaster进程
5 向旧的master进程发送winch信号,旧的worker子进程退出
nginx热升级过程以及失败返回步骤_第1张图片


nginx热升级过程以及失败返回步骤_第2张图片

  **   
**  kill -s SIGUSR2 27839
    cat /run/nginx.pid.oldbin 
     kill -s SIGWINCH 27839
    kill -s SIGQUIT 27839**
    **

nginx热升级过程以及失败返回步骤_第3张图片

1先备份nginx配置文件和二进制文件 我这边用yum安装 配置/usr/sbin/nginx && /etc/nginx/nginx.conf
2 使用 kill -s SIGUSR2 老的nginx 进程 有没有大佬说说原理 下面的这段话也没看懂

当一个进程调用fork时,因为子进程在开始时复制父进程的存储映像,信号捕捉函数的地址在子进程中是有意义的,所以子进程继承父进程的信号处理方式。

3 kill -s SIGWINCH 27839 下面的我也没看懂 此时应该验证新nginx业务是否正常 如果有问题需要回滚则在第4步前 kill -s SIGHUP 27839 在杀掉新进程

28) SIGWINCH 窗口大小改变时发出.

4 kill -s SIGQUIT 27839 退出老进程
nginx热升级过程以及失败返回步骤_第4张图片