Nginx 平滑升级笔记
type
status
date
slug
summary
tags
category
icon
password
一、核心概念
平滑升级:不停止服务的情况下更新 Nginx 版本,用户无感知。
原理:
- 旧主进程收到信号后启动新主进程
- 新旧进程共存处理请求
- 逐步关闭旧工作进程
- 最终完全切换到新版本
二、操作步骤
1. 查看当前版本
2. 下载新版本
3. 编译新版本(关键!)
4. 替换二进制文件
5. 启动新进程(核心步骤)
此时效果:
- 新旧主进程共存(
ps -elf | grep nginx可见两个master process)
- 旧进程继续监听端口,新进程准备接管
6. 优雅关闭旧工作进程
此时效果:
- 旧工作进程逐步退出(处理完当前请求后关闭)
- 新工作进程完全接管流量
7. 最终清理(可选)
三、关键要点与注意事项
- 信号说明:
信号 | 作用 |
USR2 | 热升级,启动新主进程 |
WINCH | 优雅关闭旧工作进程 |
QUIT | 优雅关闭主进程(旧版) |
- 回滚方案(重要补充!)
若新版本有问题:
- 必须一致:
- 编译参数需与旧版完全相同(通过
nginx -V查看) - 配置文件路径不能改变
- 验证方法:
运维经验:
- 生产环境先在小流量节点测试
- 使用
nginx -t测试配置文件语法
- 升级前备份配置:
cp -r /usr/local/nginx/conf/ nginx_conf_backup
Loading...