API 文档

文档中心 > API 网关 > 常见问题 > 504 问题处理方法

504 问题处理方法

最近更新时间:2020-08-12 17:49:14

调用 API 网关服务时,日志中出现“504 Gateway Time-out”如何处理?

当用户调用 API 网关服务时,如果日志中出现“504 Gateway Time-out”,可以从以下几个角度排查问题:

检查直接访问 API 网关后端服务是否正常

  • 当后端服务是 HTTP 类型,且不在任何 VPC 内,直接通过外网访问查看是否超时。
  • 当用户后端服务是 VPC 内的负载均衡资源时,使用相同 VPC 内的另一台 CVM 访问负载均衡的内网 IP,检查是否超时。
  • 当用户后端服务是 TSF 时,通过 TSF 下同一个命名空间的服务实例对超时实例进行访问,检查是否超时。

在以上情况中,如果测试依然超时,考虑是后端服务存在问题,建议检查后端服务是否正常。

检查 API 网关以及后端服务设置的超时时间

用户在配置 API 网关的 API 时,需要在后端配置中添加超时时间,如果后端服务没有在超时时间内返回结果,网关会返回504错误。

检查安全组是否设置正确

  • 当用户后端地址是 VPC 内的 CLB 时,查看关联的 CLB 绑定的 CVM 安全组是否放通了 API 网关的 IP。如果没有设置安全组,请查看后端地址是否还存在其他的端口网络限制。
    放通安全组方法:CLB 绑定的后端 CVM 安全组,需要放通 API 网关的内网 IP 网段,不同地域内网 IP 网段列表请参考 API 网关各地域内网网段以及外网 VIP。端口需要放通部署在 CVM 上的服务的端口。安全组的设置方式请参考 安全组操作
  • 当用户的 API 是微服务 API,且服务部署在 CVM 上时,需要在 CVM 上的安全组上放通客户端 IP,端口放通服务端口。
  • 当用户的 API 是微服务 API,且服务部署在容器中时,由于容器的 pod 不一定固定在某个 CVM 上,建议将集群中的机器都放通相同的安全组,放通客户端 IP,端口放通容器的端口。
  • 当用户的后端地址是一般的外网可访问 HTTP 地址时,也需要检查是否有设置防火墙、安全组等,需要放通网关的外网 VIP 。
说明:

由于 API 网关不能保证外网 VIP 以及内网网段不变,建议用户使用密钥对鉴权以保证请求的安全。