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

504 问题处理方法

最近更新时间:2019-08-13 12:23:04

当用户调用 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 网段列表 如下。端口需要放通部署在 CVM 上的服务的端口。安全组的设置方式请参考 安全组操作
  • 当用户的 API 是微服务 API,且服务部署在 CVM 上时,需要在 CVM 上的安全组上放通 API 网关的内网 IP 网段,端口放通服务端口。
  • 当用户的 API 是微服务 API,且服务部署在容器中时,由于容器的 pod 不一定固定在某个 CVM 上,建议将集群中的机器都放通相同的安全组,放通网关的内网网段,端口添加容器的端口。
  • 当用户的后端地址是一般的外网可访问 HTTP 地址时,也需要检查是否有设置防火墙、安全组等,需要放通网关的外网 VIP 。
说明:

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

API 网关各地域内网网段以及外网 VIP 对应如下:

地域 内网网段 外网 VIP
广州 9.0.0.0/8、10.0.0.0/8、100.64.0.0/10 116.31.69.26、116.31.69.27、116.31.69.28、116.31.69.29、116.31.69.30、125.94.61.15、125.94.61.16、125.94.61.17、125.94.61.18、125.94.61.19、125.94.61.20、125.94.61.21、125.94.61.22
北京 9.0.0.0/8、10.0.0.0/8、100.64.0.0/10 123.206.35.240、123.206.35.241、123.206.35.242、123.206.35.243、123.206.35.244、123.206.35.245、123.206.35.246、123.206.35.247、123.206.35.248、123.206.35.249
上海 9.0.0.0/8、10.0.0.0/8、100.64.0.0/10 211.159.135.26、211.159.135.27、211.159.135.28、211.159.135.29、211.159.135.30
中国香港 9.0.0.0/8,10.0.0.0/8、100.64.0.0/10 119.28.95.201、119.28.95.202、119.28.95.203、119.28.95.204