资讯动态 / 使用帮助 / 502 Bad Gateway 怎么排查?

502 Bad Gateway 怎么排查?

帮助

2026-08-24 发布

502 的意思很明确:反向代理收到了请求,但它去找后端时没拿到有效响应。所以要查的永远是「代理和后端之间」这一段,和用户侧、DNS 都没关系。

三种典型情形

情形特征怎么确认
后端进程挂了100% 报 502,一直不恢复看后端进程在不在、端口有没有监听
后端超时间歇 502,且响应慢的时候更容易出现看错误日志里有没有 timeout 字样
反代配置错改完配置立刻开始报核对上游地址、端口和协议

按顺序查

1. 后端还活着吗

最快的判断方式是绕过代理直接访问后端:在服务器上对后端监听的地址和端口发一次请求。拿不到响应,问题就在后端本身,跟代理无关。进程还在但不响应,多半是线程 / 连接池被占满了——数据库慢查询、外部接口不返回、死锁,这三样最常见。

2. 是不是超时

反代日志里出现 upstream timed out 就是超时。这时候单纯调大超时时间只是把症状往后推,该做的是找出哪个请求慢。如果是个别接口慢(比如导出、报表),把它们单独配一个更长的超时,其余保持短超时,比全局调大安全得多。

3. 配置对不对

改过配置之后开始报 502,重点核对三件事:上游地址和端口写没写错、后端是 HTTP 还是 HTTPS(协议写反会直接失败)、用 unix socket 的话文件路径和权限对不对。改完先做配置语法检查再重载,别直接重启。

4. 连接数与文件描述符

高并发下的间歇性 502,很多是连接数打满或文件描述符不够。这类问题的特征是「平时正常、一到高峰就来一阵」,光看单次请求看不出来。

从外部怎么观察

手上暂时没有服务器权限时,可以先从外部收集证据:

  • HTTP 状态检测 多测几次,看是稳定 502 还是时好时坏——这一条直接决定了排查方向。
  • TCPing 测端口。端口通说明代理活着,那就是代理到后端这一段的问题。
  • HTTP 响应头查看 看返回头里的 Server 字段,确认这个 502 是哪一层发出来的:源站的 Nginx、还是前面的 CDN。CDN 回源失败也会给你一个 502,但要查的是完全不同的地方。

相关状态码别搞混

502 是「后端给了无效响应」,504 是「后端超时没给响应」,503 是「服务主动表示我现在不可用」。三者指向的原因不一样,看到具体哪个再决定查什么。完整对照可以看 HTTP 状态码大全。