向Nginx主进程发送HUP信号可实现平滑重启:先校验配置语法,通过后加载新配置、启动新worker进程并逐步淘汰旧进程;推荐使用nginx -s reload替代手动kill -HUP,因其自动完成PID读取、语法检查与信号发送。

向 Nginx 主进程发送 HUP 信号是实现平滑重启的核心方式,它让服务在不中断现有连接的前提下加载新配置、启用新工作进程、逐步淘汰旧进程。
确认主进程 PID 的位置
Nginx 启动后,默认会在安装目录的 logs/nginx.pid 文件中写入主进程号。这个路径可在 nginx.conf 中通过 pid 指令自定义,例如:
若不确定路径,可用以下任一方式快速获取:
-
cat /usr/local/nginx/logs/nginx.pid(按实际安装路径调整) -
ps -ef | grep "nginx: master",找到无-g或-c参数的那一行对应的 PID
执行 HUP 信号触发平滑重启
使用 kill -HUP 命令向主进程发送信号:
该操作会触发以下行为:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 主进程先校验
nginx.conf语法,若报错则中止,旧进程继续运行 - 语法通过后,主进程解析新配置,重开监听套接字和日志文件
- 启动一批新的 worker 进程,开始接受新连接
- 原有 worker 进程不再接受新请求,但持续处理已建立的连接直至完成
务必先检查配置再发信号
直接发送 HUP 而不验证配置,可能导致服务异常或回退失败。标准流程是:
nginx -t或指定配置路径:
nginx -t -c /etc/nginx/nginx.conf输出含 syntax is ok 和 test is successful 才表示安全。
替代命令:nginx -s reload 更推荐
本质等价于发送 HUP 信号,但更简洁可靠:
nginx -s reload它自动读取 pid 文件、执行语法检查、发送信号,出错时也会明确提示,适合日常运维使用。

















