Nginx重载配置的核心是平滑加载新配置且不中断已有连接。需先确认master进程运行,再执行nginx -t验证语法,最后用systemctl reload nginx等命令发送HUP信号完成热更新,并通过进程、curl和日志验证生效。

确认 Nginx 主进程在运行
重载依赖主进程接收信号,先确保它正在运行:
- Linux 常用检查:
ps aux | grep nginx或systemctl status nginx - 看到 master process 行(不是只有 worker),说明主进程正常
- 如果只看到 worker 进程而无 master,说明可能被强制 kill 过,需先启动:
nginx(注意路径)
先验证配置语法是否正确
这步不能跳过——语法错误会导致重载失败,甚至让服务不可用:
- 运行:
nginx -t - 成功输出应包含:syntax is ok 和 test is successful
- 若提示错误行号,回到
nginx.conf或对应include文件中修正 - 配置文件默认位置:
/etc/nginx/nginx.conf;站点配置多在/etc/nginx/sites-enabled/
执行重载命令(按环境选一种)
本质都是向主进程发送 HUP 信号,但调用方式因部署方式而异:
- 使用 systemd(主流 Linux 发行版):
sudo systemctl reload nginx - 使用传统 service 脚本:
sudo service nginx reload - 手动指定路径(如未加入 PATH 或自编译安装):
sudo /usr/local/nginx/sbin/nginx -s reload - 通过 PID 文件直接发信号:
sudo kill -HUP $(cat /usr/local/nginx/logs/nginx.pid)
验证是否生效
重载后快速确认变更已应用:
- 检查进程:运行
ps -ef | grep nginx,应看到多个 worker process,且主进程时间戳更新 - 测试新配置:比如新增了
location /api,用curl http://localhost/api/test验证路由是否命中 - 查看日志:
tail -f /var/log/nginx/error.log,重载成功一般无报错;若有“reloading”字样更直观 - 注意:浏览器缓存可能掩盖效果,建议用
curl -v或隐身窗口测试


















