附加到负载均衡器的 EC2 实例显示不健康状态

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

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

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

那么为什么我的注册实例状态为“不健康”?如何纠正/解决该问题以将状态更改为“使用中”?

amazon-web-services amazon-ec2 amazon-elb
4个回答
20
投票

Unhealthy 表示实例的健康检查失败。

需要检查的事项:

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

2
投票
在我的例子中,ALB 上的健康检查配置是 / 和 https。

我通过以下步骤解决了。

    检查安全组 - 我们是否已打开从 ALB SG 到 EC2 SG 所需的端口。
  1. 登录服务器并检查 IIS 服务器的默认站点是否打开了 443 端口(如果您的健康检查是在 443 上)。(无论您使用哪个端口进行健康检查)。

使用curl命令解决问题。

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

    curl https://[服务器IP] -k

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

    curl http://[服务器IP]


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


0
投票
在电脑左侧的搜索框中搜索防火墙,选择入站,创建新规则以允许您用于负载均衡器的端口

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.