应用ELB流量路由到新添加的实例之前,宽限期

问题描述 投票:0回答:2

我已经安装自动伸缩群和设置宽限期,以300(5分钟)。我的新实例,最多需要2.5分钟开机,并准备处理HTTP请求。但我注意到,我的每一个新的实例被添加ELB时间开始转发流量到新实例之前,宽限期即5分钟甚至方式。由于这是我现在面临502错误网关错误。

任何人都可以指导我,为什么我的应用负载平衡器的行为就像它?

我使用ELB型健康检查和下面是我的目标群体健康检查的设置

协议:HTTP

端口:80

健康门槛:2

不健康的门槛:10

超时:10

区间:150

成功代码:200

amazon-web-services amazon-ec2 amazon-elb autoscaling
2个回答
1
投票

这是一种正常的行为。宽限期是不是有预防健康检查的发生。这适用于ELB和EC2服务的健康检查属实。在您指定的宽限期,无论ELB和EC2服务将发送健康检查到您的实例。这里的区别是,自动缩放不会根据这些检查的结果采取行动。这意味着,自动缩放不会自动调度实例进行更换。

只有在该实例启动并运行正常(通过ELB和EC2健康检查),将ELB注册的实例,并开始发送正常的信息流。但在宽限期到期之前会发生这种情况。如果你看到502错误后的实例已与ELB注册那么你的问题是其他地方。


0
投票

最后我解决我的问题。我在这里写我的解决方案,以帮助其他人在这里面临着同样的问题。

就我而言,我最初的感觉是,Application Load Balancer是路由流量到新添加的实例之前,它已准备好为。但详细的调查表明,这不是问题。在我的情况下,新的实例也能够服务在启动交通,这是产生这种ELB水平502错误数分钟后大约30秒之后,它开始正常工作。

解决方案:应用程序有60秒的默认连接KeepAlive。 Apache2的有5秒的默认连接KeepAlive。如果5秒以上,Apache2的关闭其连接并重置与ELB的连接。但是,如果收到请求时在恰当的时候,ELB会接受它,决定哪个主机将其转发给,并在那一刻,Apache的关闭连接。这将导致该502错误代码。

我设置ELB超时设置为60秒,的Apache2超时为120秒。这解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.