我们有一个ALB负载平衡2个目标。但是我们经常遇到来自ALB的502个响应,这会中断UI并引发错误。我们的应用程序是基于在节点js上运行的UI,并使用socket.io。
ALB访问日志中的示例日志。
https 2019-06-10T09:29:46.987095Z app/DES-G1-USE4-ext-elb/7c8fddfc050d66f6 184.51.199.55:55418 10.72.72.155:8888 0.000 8.697 -1 502 - 876 485 "GET https://designer-use4.genesyscloud.com:443/socket.io/?EIO=3&transport=polling&t=Mj0kC0w HTTP/1.1" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-1:361190373704:targetgroup/DES-G1-USE4-tg-desg/4cc8feabb9ee8f89 "Root=1-5cfe2302-b19c6d5059c2fc6096e048e0" "-" "session-reused" 0 2019-06-10T09:29:38.289000Z "forward" "-" "-"
此处-1 502-表示请求已由ELB转发到后端,但未响应目标。并且连接为黑白ELB,并且目标以某种方式关闭。按照https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html。
在我们的应用程序日志中,没有跟踪到我们应用程序的请求。
请帮助我们从ALB调试此问题。
答案 0 :(得分:1)
确保您的应用程序在/
路径上以200-399响应代码响应。您提到的行为通常是因为负载均衡器Health Check无法验证您的应用程序是否正常运行。另外,请确保您的服务器能够在该路径的HTTP上响应(尚不支持HTTP / 2)。
答案 1 :(得分:0)
可能的原因:
防火墙:请确保您的应用程序服务器和ELB的安全组能够在指定端口上相互连接。
运行状况检查:负载平衡器将启动崩溃几次的应用程序服务器。确保应用服务器已连接并在仪表板上显示为正常。