即使 EC2 正在运行,AWS Elastic Beanstalk 负载均衡器在克隆 EB 环境后也会返回黑页

即使 EC2 正在运行,AWS Elastic Beanstalk 负载均衡器在克隆 EB 环境后也会返回黑页

鉴于production通过 AWS Elastic Beanstalk 设置了健康的工作环境,运行 3 个由 ELB 负载平衡的 EC2 实例。(EC2 实例是 Docker 容器)

什么时候我将 EB 环境克隆到新的 EB 环境newproduction-2

然后新环境已成功克隆,所有 EC2 实例均正常运行(如果我访问 EC2 公共 IP/DNS 页面,则会呈现我需要的页面)

负载均衡器 URL 返回空白页 production-2负载均衡器抱怨 3 个实例中没有一个是健康的(严重实例)

答案1

AWS EB 负载均衡器仅将请求转发到它认为“健康”的实例(以避免在 EC2 实例死亡时返回 500 个页面)。

负载均衡器实现这一点的方式是 ping 您的服务器实例同意的路径,无论它们是否响应2xx(200、201,...)

默认情况下,每次克隆 Elastic Beanstalk 环境时,默认值都是这样的/healcheck.html。因此,如果您的 EC2 实例服务器不响应此路径(例如没有该文件),它会认为 EC2 服务器实例不健康

因此,要么创建此文件(以便my-ec2-public-dns.elasticbeanstalk.com/healthcheck.html存在)

...或者(更好)将此路径更改为/或对您的业务有价值的内容。在 AWS 控制台中,转到EC2 > Load Balancer (in left panel menu) > click on your load-balancer > health check > edit并将更改Ping Target HTTP:80/healthcheckPing Target HTTP:80/

相关内容