应用程序负载均衡器上的状态代码460

gkr*_*zek 7 http nginx amazon-ec2 amazon-web-services elastic-load-balancer

我在460Application Load Balancer的日志中看到了大量的状态代码.我没有在时间,服务器或请求URL方面看到这些代码的任何模式.根据这篇论坛帖子,460意味着:

在空闲超时在前端或后端连接上启动之前,客户端已关闭与ALB的连接.

我可以看到请求发送到后端服务器,后端处理请求没有问题,非常快.为什么会发生这些错误?此ALB使用6-8个后端服务器进行大量流量.

示例ALB日志:

https 2017-01-30T22:46:27.451363Z app/LOAD-BALANCER/bbab458ad0b80d X.X.X.X:55999 10.5.X.X:80 0.000 -1 -1 460 - 132 0 "GET https://www.website.com:443/app/page HTTP/1.1" "-" ECDHE-RSA-AES128-SHA TLSv1 arn:aws:elasticloadbalancing:us-west-2:743462462234:targetgroup/TARGET-GROUP/e6120e5adr245b79107e "Root=1-588fc23e-77aea5adf4534af3de09659d13a08"

来自后端的示例NGINX日志:

X.X.X.X 1485807955.048 www.website.com /app/page - GET 200 - 0.056 24 text/html; charset=UTF-8 -

Ath*_*hri 13

针对应用程序负载均衡器更新状态代码460的文档.

当负载均衡器收到来自客户端的请求时,会发生此错误,但客户端在空闲超时时间过去之前关闭了与负载均衡器的连接.

检查客户端超时时间是否大于负载均衡器的空闲超时时间.确保目标在客户端超时期限过去之前向客户端提供响应,或者如果客户端支持,则增加客户端超时时间以匹配负载均衡器空闲超时.

您可以在此处阅读完整的文档:http: //docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#http-460-issues

  • 没有人会收到它。它仅显示在 ALB 日志中。 (4认同)

小智 6

此序列中可能有一个线索:

0.000 -1 -1 460-

字段是request_processing_time,target_processing_time,response_processing_time,elb_status_code,target_status_code

根据http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs,target_processing_time和response_processing_time字段为-1表示将请求分发到目标主机时出现问题。 html

检查您的目标是否收到请求,ALB和目标之间可能存在一些配置或网络问题。ALB在将跟踪标头X-Amzn-Trace-Id发送到目标时,将其插入到请求中,也许将它们记录在NGINX后端上,看看是否收到失败的特定请求。

我一直在处理类似的问题,它似乎与我们的主机由于Windows主机上的TCP卸载而丢弃TCP数据包有关。