Nginx 操作保命指南
推荐变更顺序
sudo nginx -t
sudo systemctl reload nginx
systemctl status nginx --no-pager
curl -vk https://example.com/api/health
- 编辑前保存配置或确保由 Git 管理。
nginx -t检查语法和引用文件。- 优先 reload,让新 Worker 使用新配置、旧 Worker 收尾。
- 验证静态页面、API、错误路径和日志。
nginx -t 通过不代表业务正确:错误的 upstream、location 优先级、proxy_pass 尾斜杠、Header、证书域名都可能语法合法。
常见状态
502:Nginx 无法从上游取得有效响应,检查 PM2、端口、Socket 和日志。504:连接上游后在代理期限内未完成,检查慢请求和超时链路。404:可能由 Nginx location、静态文件或 Express 路由产生,先识别响应来源。
sudo nginx -T
journalctl -u nginx --since '15 minutes ago'
tail -n 100 /var/log/nginx/error.log
nginx -T 会输出完整配置,可能包含内部路径等信息,分享前脱敏。
reload 与 restart
配置更新优先 reload;二进制异常、服务状态损坏或不支持 reload 的变更才考虑 restart。无论哪种都要检查旧 Worker 是否长期不退出以及业务入口是否正常。