Amazon ec2 ELB运行状况检查启动后未检查web实例

Amazon ec2 ELB运行状况检查启动后未检查web实例,amazon-ec2,connectivity,amazon-elb,vpc,amazon-vpc,Amazon Ec2,Connectivity,Amazon Elb,Vpc,Amazon Vpc,我们在ELB后面有一个web实例(nginx),需要时手动打开它。 当我们在本地运行wget时,web应用程序会快速启动并返回成功的200响应 但是,由于ELB没有向实例发送healthcheck请求,网站将不会加载。我可以通过查看nginx访问日志来确认这一点 我一直在使用的解决方法是从ELB中删除web实例并将其添加回。 这似乎再次激活了健康检查,从我们的访问日志中可以看到它们 我已经编辑了我们的Healthcheck设置,允许更长的超时时间,并将不健康阈值提高到3,但这没有任何区别 目前,

我们在ELB后面有一个web实例(nginx),需要时手动打开它。 当我们在本地运行wget时,web应用程序会快速启动并返回成功的200响应

但是,由于ELB没有向实例发送healthcheck请求,网站将不会加载。我可以通过查看nginx访问日志来确认这一点

我一直在使用的解决方法是从ELB中删除web实例并将其添加回。 这似乎再次激活了健康检查,从我们的访问日志中可以看到它们

我已经编辑了我们的Healthcheck设置,允许更长的超时时间,并将不健康阈值提高到3,但这没有任何区别

目前,我们的健康检查配置为: Ping目标:HTTPS:443/登录 超时时间:10秒 间隔:12秒 不健康:2 健康:2

听众: HTTPS 443到HTTPS 443 SSL证书

ELB和web实例都位于同一个公共VPC安全组中,该组的http/https已打开到0.0.0.0/0

有人能帮我弄清楚为什么ELB健康检查没有在web实例启动后立即启动吗?这是设计的还是有自动启动检查的方法?多谢各位


尼尔

您的实例是否每次启动时都会提供不同的IP地址

弹性负载平衡使用与实例关联的IP地址向EC2实例注册负载平衡器。当实例停止然后重新启动时,与实例关联的IP地址将发生更改。负载平衡器无法识别新的IP地址,这会阻止它将流量路由到实例

-

重新关联实例的合适方法似乎是,当启动过程确定实例已准备好进行web通信时,web服务器实例上运行的代码通过API以编程方式向负载平衡器注册自身


更新:

Luke@AWS:“您应该在停止/启动期间从ELB注销。”

-

我很好奇控制台显示了什么作为实例在ELB中不活动的原因。ELB和EC2之间似乎存在某种交互,其中ELB对实例的EC2状态(例如“已停止”)有某种感知,而不仅仅是健康检查。这并没有很好的文档记录,但我推测,基于这种意识,ELB认为不值得为健康检查费心,控制台可能会提供一些有用的东西,至少可以证实这一点

如果有足够的时间,ELB可能会意识到实例正在重新运行并开始发送运行状况检查,但也可能实例有一个隐藏的全局元标识符与i-xxxxxx分开,并且从该标识符的角度来看,停止并重新启动的实例是另一个实例


…但答案似乎是,停止实例并重新启动它需要向ELB重新注册。

嗨,Michael,我的环境是在VPC中设置的,所以私有IP在关闭后不会改变。您知道我的ELB是否按照预期的方式运行,还是应该经常检查实例的运行状况?谢谢Michael,是的,我们发现的也是,大约20分钟后,ELB将再次开始检查实例的运行状况。