AWS ELB 间歇性 502 网关超时错误

Ana*_*man 4 amazon-web-services amazon-elb

我在部署在 3 个 EC2 实例上的 node.js 应用程序前面有一个 ELB。

我已经开始观察间歇性 HTTP 502 错误网关错误

以下是我的访问日志的摘录。这些 502 错误没有规律,所以我无法缩小原因?

ELB问题还是应用问题?

访问日志可以帮助我解决这个问题吗?

每 100 个请求中有 5 个请求会发生这种情况

*type*                     https    
*timestamp*                2019-05-08T14:50:11.438405Z  
*elb*                      <my-elb>
*client:port*              clientIp:port
*target:port*              targetIp:port
*request_processing_time*  0    
*target_processing_time*.  2.596    
*response_processing_time* -1   
*elb_status_code*          502  
*target_status_code*       -    
*received_bytes*           792  
*sent_bytes*               293  
*request*                  POST https://app/app-url/2.0/resourcepath/id/abc?queryParamA=abc&queryParamB=false&queryParamC=6b84c34 HTTP/1.1  
*user_agent*               Apache-CXF/3.2.5 
*ssl_cipher*               ssl-cipher
*ssl_protocol*             TLSv1.2  
*target_group_arn*         arn
*trace_id*                 traceId
*domain_name*              cool-domain-name
*chosen_cert_arn*          session-reused   
*matched_rule_priority*    0    
*request_creation_time*    2019-05-08T14:50:08.841000Z  
*actions_executed*         forward  
*redirect_url*             -    
*error_reason*             -
Run Code Online (Sandbox Code Playgroud)

joc*_*lyn 10

确保您的节点服务器 keepAliveTimeout 大于 ELB 空闲超时。当目标机器关闭连接时,ELB 和 ALB 不喜欢。要检测到这一点,您可以检查 elb 日志,您可能会看到响应时间为 -1 和 502。“-1”表示目标直接拒绝了请求。

  • 其他对我有帮助的资源是 https://adamcrowder.net/posts/node-express-api-and-aws-alb-502/ 和 https://www.transposit.com/blog/2018.09.14-mysterious-case / (2认同)