AWS:Target.FailedHealthChecks - 站点始终处于“严重”状态

Dja*_*rdt 7 healthcheck amazon-ec2 amazon-web-services elastic-beanstalk

我的 Elastic Beanstalk 应用程序处于恒定severe状态......即使它工作得非常好。

查看 Health 屏幕,它说 100% 的请求是3xx,查看日志,这显然得到证实:

[29/Nov/2017:10:07:46 +0000] "GET / HTTP/1.1" 302 356 "-" "ELB-HealthChecker/2.0"

这是完全合理的,/302 将您重定向到“登录”页面。

问题是,我已经告诉 AWS/在检查健康状况时不要使用,而是使用/newswhich 应该始终返回 a 200,无论您是否登录:

在此处输入图片说明

我尝试将健康检查 URL 更改为其他合适的端点,并重新启动 EC2 实例,但它始终返回检查/(根据日志)。我已经给了它 12 个小时,看看它是否也会及时改变。

那么为什么它会不断检查/并返回一个severe状态呢?我能做些什么来解决这个问题?可能是安全组问题(即使该站点对公众开放)?

Dja*_*rdt 7

该错误似乎是由Application Load Balancer的健康检查引起的,而不是由 Elastic Beanstalk 应用程序引起的。ALB 需要在不同位置更改其目标(请参阅文档)。

一旦我知道,这很容易解决:

使用控制台修改目标组的健康检查设置

  1. 通过https://console.aws.amazon.com/ec2/打开 Amazon EC2 控制台。
  2. 在导航窗格上的负载均衡下,选择目标组。
  3. 选择目标群体。
  4. 在运行状况检查选项卡上,选择编辑。
  5. 在 Edit target group 页面上,根据需要修改设置,然后选择 Save。