异常问题排查 请求响应为500、502、503、504状态码的解释及可能原因是什么? 500(Internal Server Error) 后端服务器内部错误,无法执行请求。 可能原因: 后端服务器直接返回500,ALB透传后端状态码给客户端,请排查后端服务器返回500的原因。 后端服务器在发送完响应之前异常关闭连接,请在后端服务器抓包确定并排查请求异常关闭的原因。 502(Bad Gateway) HTTP或HTTPS监听接收到客户端连接请求后,ALB由于无法正常将请求转发至后端服务器或无法从后端服务器收到响应,则会向客户端发送HTTP 502 Bad Gateway状态码。 可能原因: 后端服务器直接返回502,ALB透传后端状态码给客户端,请排查后端服务器返回502的原因。 ALB后端服务器返回其他错误的状态码,但ALB统一返回502。建议排查访问日志的upstreamstatus和status字段或抓包排查后端服务器是否有异常。 ALB与后端服务器之间TCP通信异常,请排查后端服务器的状态是否正常、服务端口是否正常被监听,或抓包查看TCP握手报文是否正常。 后端服务器Backlog已满,导致报文丢弃。建议通过netstat查看后端服务器的网络统计结果是否有drop的计数,例如netstat s grep i listen。 同一个服务器组的所有后端服务器健康检查都异常,与之关联的ALB实例无法转发请求,直接返回502。建议通过日志排查后端服务器是否有异常,或者检查健康检查配置是否存在异常。 客户端发送的报文长度超过了后端服务器的最大传输单元(Maximum Transmission Unit,MTU),表现为健康检查或报文较短的包正常,但报文较长的包异常。建议在后端服务器抓包分析报文长度是否符合要求。 后端服务器返回的报文格式异常或者有非法的HTTP标头。建议在后端服务器抓包,确认HTTP格式是否正常。 ALB后端服务器没有及时完成请求处理,请排查后端服务器的日志,并查看对应后端服务器的CPU、内存等的占用率。 503(Service Temporarily Unavailable) 暂时无法使用服务器。 可能原因: 后端服务器直接返回503状态码,ALB透传后端状态码给客户端,请排查后端服务器返回503的原因。 请求没有请求到ALB对应的监听上,监听配置在ALB未找到,可能是请求没有匹配到配置的监听策略。 504(Gateway Timeout) 后端服务器响应超时。 可能原因: 后端服务器直接返回504状态码,请排查后端服务器的负载是否过高。 ALB向后端服务器建立连接时,后端服务器建立连接超时,超时时间默认设置为30秒,您可以查看访问日志中的upstreamconnecttime字段是否为30秒或者大于30秒。建议抓包排查后端服务器响应超时的原因。 后端服务器负载增大,响应请求的时间大于所配置的请求超时时间。比如配置的请求超时时间是60秒,如果响应时间为60.001秒,ALB将返回504。 访问日志中查看upstreamresponsetime。