Nginx Master进程收到SIGHUP后先校验配置语法与资源权限,通过则fork新Worker加载新配置并accept新连接,同时旧Worker处理完已有连接后优雅退出,全程不中断服务、不丢请求。
Nginx 的 Master 进程通过接收 SIGHUP(信号编号 1)实现配置重载,整个过程不中断服务、不丢请求,核心是“新旧 Worker 并存 + 优雅切换”。
它不会立刻重启或覆盖配置,而是严格按顺序执行:
nginx.conf 及所有 include 文件,检查语法是否合法任一检查失败,Master 就停止后续流程,继续用旧配置运行,并在 /var/log/nginx/error.log 中记录错误。服务完全不受影响。
Master 开始加载新配置到内存,并 fork 出一批新 Worker 进程:
server 块、upstream 地址、TLS 参数):80、:443),开始 accept 新连接Master 向旧 Worker 发送 SIGQUIT(不是用户直接发的 HUP),触发其优雅关闭逻辑:
必须作用于 Master 进程本身,常见方式有:
kill -HUP $(cat /var/run/nginx.pid)(最直接,需确认 PID 文件路径)nginx -s reload(封装好的命令,内部也是发 SIGHUP)systemctl reload nginx(推荐,自动做 nginx -t 校验 + 权限检查 + 信号发送)注意:不要对 Worker 进程 PID 发 HUP —— 它们不响应这个信号,也没法触发重载。