You need to enable JavaScript to run this app.
导航
请求返回 503 Service unavailable 如何处理?
最近更新时间:2024.09.11 10:32:28首次发布时间:2023.05.18 10:44:54

问题描述

调用 API 网关服务时,返回503 Service unavailable错误,Response Body 内容为upstream connect error or disconnect/reset before headers. reset reason: connection failure

解决方案

原因分析解决方案
网络链路问题请确认网络链路通畅。

后端服务自身异常

请排查您的后端服务状态。

  • 服务状态异常:请自行处理后端服务业务逻辑。

  • 服务状态正常:请确认关联 API 网关的后端服务是否被删除。

    • 关联的后端服务已删除:请登录 API 网关控制台,修改 API 网关路由关联的后端服务,配置为可以访问的后端服务。

    • 关联的后端服务未删除:请 提交工单

response_flags=UF

查看访问日志时显示 response_flags=UF,表示连接不到上游 Upstream。

  • 网关内不能 ping 通后端 IP,请设置安全组

    详情请参见 创建云服务器类型 Upstream创建容器服务类型 Upstream

  • 安全组已设置,网关内不能 ping 通后端 IP,表示已经下线的 Upstream host 没有从 Upstream 中摘流

    • ECS 类型 Upstream:ECS 下线或删除后,没有同步更新网关 ECS 类型 Upstream。请及时同步更新 ECS Upstream。

    • k8s 类型 Upstream:gateway-controller 同步失效,请排查 gateway-controller 是否宕机,及时恢复 gateway-controller。

  • 安全组已设置,网关内能 ping 通后端IP,telnet Upstream host 端口失败,表示Upstream host的端口不正确

    请修改 Upstream host 的端口为正确的端口。

response_flags=UC

查看访问日志时显示 response_flags=UC,表示网关转发请求过程中,后端终止了网关到后端的 TCP 连接。

  • 表示网关的 UpstreamIdleTimeout 大于 后端 idleTimeout。后端配置的 idletimeout 到期后,发送了 FIN 关闭和网关的连接,网关侧转发请求复用这个连接。

    请调整网关 UpstreamIdleTimeout 小于 后端 idleTimeout。

response_flags=UH

查看访问日志时显示 response_flags=UH,表示后端 Upstream 没有一个健康的 IP。
请排查 k8s service 是否存在可用 Endpoint。