启动、停止与重载
约 617 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › Nginx › 快速入门(在新窗口打开) › 启动、停止与重载
启动 Nginx
# 直接启动
sudo nginx
# 指定配置文件启动
sudo nginx -c /etc/nginx/nginx.conf
# 检查是否启动
ps aux | grep nginx
# curl 验证
curl -I http://localhost:80
# 看到 HTTP/1.1 200 OK 即启动成功停止 Nginx
Nginx 提供两种停止方式:
# 快速停止(立刻终止,不等待请求完成)
sudo nginx -s stop
# 优雅停止(等当前请求处理完毕后再退出)
sudo nginx -s quitstop vs quit 的区别:
| 命令 | 行为 | 适用场景 |
|---|---|---|
nginx -s stop | 立刻终止所有 Worker | 紧急情况,快速关闭 |
nginx -s quit | 等待 Worker 处理完当前请求 | 正常维护,零中断 |
重载配置
修改配置文件后,无需停止服务即可热加载新配置:
# 重载配置(Worker 平滑重启)
sudo nginx -s reloadreload 不会中断现有连接:
- Master 重读配置,启动新 Worker。
- 新 Worker 开始接受新请求。
- 旧 Worker 继续处理已有请求,完成后自动退出。
重新打开日志文件
# 日志轮转后重新打开日志文件
sudo nginx -s reopen适用于外部 logrotate 工具轮转日志后通知 Nginx。
信号管理
Nginx 也可以通过信号管理系统进程:
# Master PID 默认在 /var/run/nginx.pid
sudo kill -HUP $(cat /var/run/nginx.pid) # 重载配置(同 reload)
sudo kill -QUIT $(cat /var/run/nginx.pid) # 优雅停止(同 quit)
sudo kill -TERM $(cat /var/run/nginx.pid) # 快速停止(同 stop)
sudo kill -USR1 $(cat /var/run/nginx.pid) # 重新打开日志(同 reopen)
sudo kill -USR2 $(cat /var/run/nginx.pid) # 平滑升级二进制查看进程
ps -ef | grep nginx
# root 12345 1 0 Master(root)
# nginx 12346 12345 0 Worker(nginx 用户)
# nginx 12347 12345 0 Worker(nginx 用户)macOS Homebrew 特有命令
brew services start nginx # 启动并设置开机自启
brew services stop nginx # 停止
brew services restart nginx # 重启小结
nginx启动,nginx -s stop快速停止,nginx -s quit优雅停止。nginx -s reload是最常用的命令——修改配置后热加载,零中断。nginx -s reopen在日志轮转后使用。- 修改配置前先
nginx -t测试语法正确性。 - Master 进程负责管理,Worker 进程负责处理请求。
