如何排查 Nginx 反向代理下的 502 错误

#Nginx · 2026-02-12 · 阅读时间 8 分钟

502 Bad Gateway 表示网关(Nginx)没有从上游服务拿到有效响应。排查时建议按“网络连通 → 进程状态 → 应用日志 → 代理配置”顺序推进,避免来回跳步骤。

1. 先确认上游服务是否可达

  • 在 Nginx 机器上执行 curl -I http://127.0.0.1:3000,确认端口正常返回。
  • 检查应用进程是否存在:ps -ef | grep your-app
  • 若是容器部署,确认容器健康状态和映射端口一致。

2. 查看 Nginx 错误日志

优先看 error.log,常见关键词如下:

  • connect() failed (111: Connection refused):上游端口未监听或服务未启动。
  • upstream timed out:上游处理过慢,需优化接口或放宽超时。
  • no live upstreams:上游集群全部不可用或健康检查失败。

3. 校验反向代理配置关键项

location /api/ {
  proxy_pass http://127.0.0.1:3000;
  proxy_connect_timeout 5s;
  proxy_send_timeout 30s;
  proxy_read_timeout 30s;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
}

重点检查 proxy_pass 路径是否多斜杠、端口是否正确、超时值是否满足接口耗时。

4. 建议的处理顺序

  1. 先恢复可用性:重启上游或回滚异常版本。
  2. 再定位根因:看最近发布、依赖变更、流量峰值。
  3. 最后补预防:健康检查、超时策略、告警阈值。
← 返回首页