附加到负载均衡器的EC2实例显示“运行状况不佳”

时间:2017-12-12 06:31:56

标签: amazon-web-services amazon-ec2 amazon-elb

我创建了一个负载均衡器并为其分配了一个正在运行的EC2实例。创建之后,我在负载平衡下的AWS控制台中导航到目标组部分,当我选择分配给负载均衡器的目标组时,它将注册的实例状态显示为“不健康”,并且在注册的实例窗格上方有一条消息说“这些可用区域中没有一个包含健康的目标。请求被路由到所有目标”。在创建负载均衡器时,我选择了所有子网(可用区)。 我用于健康检查的设置如下所述,

  • 协议:HTTP
  • 路径:/hechecheck.html
  • 港口:交通港口
  • 健康阈值:3
  • 不健康的门槛:2
  • 超时:5
  • 间隔:10
  • 成功代码:200

那么为什么我的注册实例状态为“不健康”?如何纠正/解决这个问题以将状态更改为“在线”?

3 个答案:

答案 0 :(得分:3)

运行状况不佳表示该实例的运行状况检查失败。

要检查的事项:

  • 检查实例是否正在运行 Web服务器
  • 检查healthcheck.html 的网页是否响应,并提供有效的200回复​​
  • 检查实例是否有允许在端口80(HTTP)上访问的安全组

答案 1 :(得分:0)

如果要在运行类似服务的多个EC2实例之间共享负载均衡器,请确保每个服务都在不同的端口中运行,否则服务将无法访问,因此健康检查将无法通过

答案 2 :(得分:0)

在我的情况下,ALB 上的运行状况检查配置是 / 带 https。

我通过以下步骤解决了。

  1. 检查安全组 - 我们是否已打开从 ALB SG 到 EC2 SG 的所需端口。
  2. <块引用>

    登录到服务器并检查 IIS 服务器的默认站点是否打开了 443 端口,如果您的健康检查在 443 上。(无论您使用什么端口进行健康检查)。

使用 curl 命令解决问题。

  1. 如果您想检查 HTTPS,请使用以下命令检查响应。使用 -k 或 --insecure 忽略 SSL 问题。

    curl https://[serverIP] -k

  2. 对于 HTTP 测试,请使用以下命令。

    curl http://[serverIP]