ELB 对于某些请求报告 backend_status_code 为“0”

ELB 对于某些请求报告 backend_status_code 为“0”

我在 ELB 日志中发现了一些奇怪的条目,我无法真正解释。它们都看起来像这样(解析为 JSON):

{
    "backend": "-",
    "backend_processing_time": "-1",
    "backend_status_code": 0,
    "client_ip": "XXX.XXX.XXX.XXX",
    "client_port": "52084",
    "elb": "ELB1-PROD",
    "elb_status_code": 504,
    "http_method": "POST",
    "http_version": "HTTP/1.1",
    "received_bytes": 16051,
    "request_processing_time": "-1",
    "request_uri": "https://example.com:443/example/",
    "response_processing_time": "-1",
    "sent_bytes": 0,
    "ssl_cipher": "ECDHE-RSA-AES128-GCM-SHA256",
    "ssl_protocol": "TLSv1.2",
    "timestamp": "2015-10-29T04:41:47.251500Z",
    "user_agent": "client/4.0"
}

例如"backend_processing_time": "-1"或者"backend_status_code": 0看起来真的很奇怪。

知道这意味着什么吗?我怀疑后端服务器超载了,但是当这些错误发生时,我们的负载并没有比平时更高,而且这些错误都是由同一个客户端 IP 触发的。

答案1

当 ELB 返回 504 网关超时时,表示负载均衡器关闭了连接,因为请求未在空闲超时期限内完成(根据文档)。

因此,ELB 未在空闲超时限制内收到响应,导致连接被终止,并向客户端返回 504 响应。考虑到后端请求从未完成,因此 是 和 是 实际上是有道理的。ELBbackend_status_code无法回答0它不知道的事情!backend_processing_time-1

相关内容