跳至正文
中文
立即开始

504 Gateway Timeout

504 Gateway Timeout(网关超时)是网关或代理在上游服务器未及时响应时返回的 HTTP 错误,表示因等待超时而无法完成请求。

文章目录(8 个章节)

504 表示什么

504 状态码来自充当网关的服务器,例如 CDN、反向代理或负载均衡器。网关把请求转发给上游服务器后,未能在规定时间内收到响应。

HTTP/1.1 504 Gateway Timeout

返回 504 的可能是网站服务器前方的基础设施,也可能是正在使用的正向代理。Server 和 Via 等响应头或许能标明具体网关,但有些服务会删除或替换这些信息。与连接超时不同,504 是已送达客户端的 HTTP 响应。

常见原因

  • 上游服务器过载。 应用的工作量太大,无法在网关规定的时间内处理完毕。
  • 后端处理缓慢。 数据库查询、API 调用或文件处理耗时过长。
  • 网络或 DNS 故障。 网关无法稳定连接上游服务,或无法解析其地址。
  • 代理线路故障。 如果请求只在使用代理时失败,可能是代理线路或出口服务器速度过慢或不可用。

如何解决 504 错误

  1. 等待一段时间后重试安全请求。 采用有限次数的重试,并使用指数退避。不要直接重试付款请求或其他 POST 请求,因为网关停止等待后,上游服务器仍可能已经完成操作。
  2. 对比直连请求和代理请求。 如果直连成功、代理请求失败,请测试其他可用的代理线路。如果两种方式都失败,问题很可能出在网站端。
  3. 降低请求负载。 减少并发和请求频率。大量突发请求可能导致网站或网关过载。
  4. 如果网站由你运营,请检查上游服务。 查看应用日志、数据库性能、DNS 解析和网关超时设置。延长超时时间可能只会掩盖后端处理缓慢的问题,因此应先找出延迟原因。

504、502 与 503 的区别

状态码 返回方 含义
504 Gateway Timeout(网关超时) 网关或代理 等待上游响应的时间过长
502 Bad Gateway(错误网关) 网关或代理 上游返回了无效响应
503 Service Unavailable(服务不可用) 服务器或网关 服务暂时无法响应

常见问题

504 Gateway Timeout 是由代理引起的吗?

有可能。可以分别使用代理和不使用代理发送相同请求。如果两条路径都失败,问题通常出在网站的网关或上游服务器。

更换代理 IP 能解决 504 错误吗?

只有代理线路或出口服务器导致延迟时才可能有效。如果网站过载、数据库响应缓慢或上游 API 不可用,更换 IP 无法解决问题。

遇到 504 后应等待多久再重试?

先等待几秒,再逐渐延长间隔,重试安全请求。如果响应中包含 Retry-After,请按其要求等待,并在有限次数的尝试后停止重试。

相关术语

查看全部术语