Nginx 平滑升级笔记

type
status
date
slug
summary
tags
category
icon
password

一、核心概念

平滑升级:不停止服务的情况下更新 Nginx 版本,用户无感知。
原理
  1. 旧主进程收到信号后启动新主进程
  1. 新旧进程共存处理请求
  1. 逐步关闭旧工作进程
  1. 最终完全切换到新版本

二、操作步骤

1. 查看当前版本
2. 下载新版本
3. 编译新版本(关键!)
4. 替换二进制文件
5. 启动新进程(核心步骤)
此时效果
  • 新旧主进程共存(ps -elf | grep nginx 可见两个 master process
  • 旧进程继续监听端口,新进程准备接管
6. 优雅关闭旧工作进程
此时效果
  • 旧工作进程逐步退出(处理完当前请求后关闭)
  • 新工作进程完全接管流量
7. 最终清理(可选)

三、关键要点与注意事项

  1. 信号说明
    1. 信号
      作用
      USR2
      热升级,启动新主进程
      WINCH
      优雅关闭旧工作进程
      QUIT
      优雅关闭主进程(旧版)
  1. 回滚方案(重要补充!)
    1. 若新版本有问题:
  1. 必须一致
      • 编译参数需与旧版完全相同(通过 nginx -V 查看)
      • 配置文件路径不能改变
  1. 验证方法

    运维经验:
    • 生产环境先在小流量节点测试
    • 使用 nginx -t 测试配置文件语法
    • 升级前备份配置:cp -r /usr/local/nginx/conf/ nginx_conf_backup
     
    Loading...