504 Gateway Time-out
问题详情
调用 API 网关服务时,日志中出现“504 Gateway Time-out”如何处理?
解决办法
1. 检查直接访问 API 网关后端服务是否正常
- 当后端服务是 HTTP 类型,且不在任何 VPC 内,直接通过外网访问查看是否超时。
- 当用户后端服务是 VPC 内的负载均衡资源时,使用相同 VPC 内的另一台 CVM 访问负载均衡的内网 IP,检查是否超时。
- 当用户后端服务是 TSF 时,通过 TSF 下同一个命名空间的服务实例对超时实例进行访问,检查是否超时。
在以上情况中,如果测试依然超时,考虑是后端服务存在问题,建议检查后端服务是否正常。
2. 检查 API 网关以及后端服务设置的超时时间
用户在配置 API 网关的 API 时,需要在后端配置中添加超时时间,如果后端服务没有在超时时间内返回结果,网关会返回 504 错误。
3. 检查安全组是否设置正确
当用户后端地址是 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。
当用户的后端是 VPC 通道,并且 VPC 通道绑定到了共享集群服务上,需要在后端 CVM 的安全组上放通客户端 IP,端口放通服务端口。
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。