405 字
1 分钟
Nginx 502/504 排错指南:反向代理常见故障的定位与修复
502 Bad Gateway 和 504 Gateway Timeout 是反向代理场景最常见的故障。
很多人直接重启服务,但不定位根因,问题会反复出现。
1. 先区分 502 与 504
- 502:Nginx 能联系上游,但上游返回异常或连接失败。
- 504:Nginx 等待上游超时。
这一区分会决定你排查的方向。
2. 第一现场:看日志
sudo tail -n 200 /var/log/nginx/error.logsudo tail -n 200 /var/log/nginx/access.log重点关注:
connect() failedupstream timed outno live upstreams
3. 验证上游服务是否存活
curl -I http://127.0.0.1:8080ss -tulpen | rg 8080如果本机都访问不到上游,先修上游应用,不要先改 Nginx。
4. 检查 proxy 配置
常见问题:
proxy_pass地址写错- 上游端口变更未同步
- Host 头缺失导致上游路由失败
参考:
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 5s; proxy_read_timeout 60s;}5. 资源瓶颈排查
若故障偶发,重点看资源:
topfree -mdf -h高频根因:
- 内存不足导致上游进程被 OOM
- CPU 打满导致响应超时
- 磁盘满导致日志或临时文件写入失败
6. Docker 场景补充
如果 Nginx 和上游在 Docker:
- 检查容器是否在同一 network
proxy_pass应指向服务名而非localhost- 容器重启策略是否合理
7. 修复后验证
nginx -t检查配置合法- 平滑重载
systemctl reload nginx - 连续压测/访问 5-10 分钟观察是否复发
总结
502/504 的关键不是“重启好了”,而是建立稳定的排查顺序:日志 -> 上游 -> 配置 -> 资源。 流程固定后,故障恢复时间会显著缩短。
延伸阅读
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Nginx 502/504 排错指南:反向代理常见故障的定位与修复
https://levifree.dpdns.org/posts/nginx-502-504-troubleshooting/ 部分信息可能已经过时
相关文章 智能推荐
1
Docker 部署 Nginx Proxy Manager: 小白也能搞定反向代理
Docker 告别繁琐的 Nginx 配置文件,用可视化面板轻松管理 SSL 证书与域名转发
2
Docker Compose 网络与 DNS 故障排查:容器互通失败怎么查
Docker 从服务名解析、端口映射到网络隔离,系统定位 `connection refused` 与 `name not resolved`
3
Astro 静态站图片 404 排查:从引用路径到浏览器回归的完整流程
Astro 用页面实际请求而不是目录猜测定位图片缺失;覆盖 public 路径、筛选后渲染与上线前检查
4
Jekyll 构建报错排查手册:10 个最常见错误与修复步骤
Jekyll 从 Front Matter、依赖冲突到端口占用,给博客维护者一份可复制的故障处理流程
5
SSH 密钥安全指南:五步防止服务器被黑
Linux 扔掉密码登录!打造银行级的 Linux 登录防线


