502 是什么意思
作为网关或代理的服务器联系上游服务器后,如果没有收到有效响应,就会返回 502。在大多数网站中,返回该错误的是位于源站服务器前端的反向代理、CDN 或负载均衡器。如果自行配置的代理服务器的上游路由出现故障,也可能返回此错误。
HTTP/1.1 502 Bad Gateway
客户端已经连接到网关,因此这与本地 DNS 解析或连接失败不同。Server 和 Via 等响应头可能表明错误来自哪一层。
常见原因
- 上游关闭了连接。 崩溃、重启或网络中断导致服务器未能返回完整的 HTTP 响应。
- 响应格式错误。 网关收到的状态行、响应头或协议响应无效。
- 路由或 TLS 失败。 网关通常会将上游 DNS、路由或证书问题映射为 502 错误。
- 源站过载。 源站接受了连接,但在返回有效响应之前发生故障。
如何解决
- 确定错误返回方。 查看响应正文和响应头,确认其中是否显示 CDN、网关或正向代理的名称。
- 对比直连请求和代理请求。 如果直连请求成功,而代理请求失败,问题很可能出在代理路径上。如果两者都失败,则更可能是网站本身的问题。
- 谨慎重试安全请求。 对 GET 或 HEAD 请求使用指数退避。不要自动重试可能导致重复操作的 POST 请求。
- 降低并发。 如果集中发送请求时出现错误,请减少并行请求数,并遵守网站的限制。
- 检查上游系统。 网站运营方应检查源站日志、健康检查、DNS 记录、TLS 设置和负载均衡器配置。
502、503 与 504 的区别
| 状态码 | 返回方 | 含义 |
|---|---|---|
| 502 Bad Gateway | 网关或代理 | 上游响应无效 |
| 503 Service Unavailable | 网站或网关 | 暂时无法处理请求 |
| 504 Gateway Timeout | 网关或代理 | 上游未及时响应 |
常见问题
502 错误是我的代理导致的吗?
有可能。如果该网址可以直连访问,但通过代理时返回 502,问题很可能出在代理或其上游路由上。如果两种请求都失败,则更可能是网站的网关或源站导致的。
502 是否表示网站封禁了我的 IP?
通常不是。IP 遭到封禁时,更常见的是 403 或 429 响应。有些系统使用非标准状态码,因此应从允许访问的连接发送同一请求进行对比,再作判断。
是否应该重试 502 错误?
可以,但对于 GET 等安全请求,也只应间隔一段时间重试几次。除非应用支持幂等键,否则不要反复重试 POST 请求。