我在我的ELB日志中发现了一些我不能解释的奇怪条目。 他们都像这样(parsing成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触发的。
当ELB返回504网关超时时,它表明负载均衡器closures连接,因为请求在空闲超时期限内未完成( 根据文档 )。
所以,ELB在空闲超时限制内没有收到响应,导致连接被中断,504响应返回给客户端。 在知道后端请求从未完成的情况下, backend_status_code为0 , backend_processing_time为-1是backend_processing_time的。 ELB不能回答不知道的事情!