调用 API 网关服务时,日志中出现“504 Gateway Time-out”如何处理?
当用户调用 API 网关服务时,如果日志中出现“504 Gateway Time-out”,可以从以下几个角度排查问题:
检查直接访问 API 网关后端服务是否正常
当后端服务是 HTTP 类型,且不在任何 VPC 内,直接通过外网访问查看是否超时。
当用户后端服务是 VPC 内的负载均衡资源时,使用相同 VPC 内的另一台 CVM 访问负载均衡的内网 IP,检查是否超时。
当用户后端服务是 TSF 时,通过 TSF 下同一个命名空间的服务实例对超时实例进行访问,检查是否超时。
在以上情况中,如果测试依然超时,考虑是后端服务存在问题,建议检查后端服务是否正常。
检查 API 网关以及后端服务设置的超时时间
用户在配置 API 网关的 API 时,需要在后端配置中添加超时时间,如果后端服务没有在超时时间内返回结果,网关会返回504错误。
检查安全组是否设置正确
对于 API 网关的共享实例,因外网VIP变更较频繁,如果用户设置了安全组,则可按照下列步骤检查:
当用户后端地址是 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,端口放通服务端口。
TKE通道504问题如何排查
504一般是后端超时或者地址不正确导致的报错。
1.检查是否后端超时
同一 VPC 下的其他节点请求后端服务,判断有无超时。
同时还需要确认有无安全组限制,如有则需要放通安全组。
2.检查是否后端地址和 APIGW节点列表不匹配
尝试重新更新 TKE 中的服务,再进行重试。