后端 ec2 实例可通过 ssh 和浏览器访问,但负载均衡器健康检查失败

后端 ec2 实例可通过 ssh 和浏览器访问,但负载均衡器健康检查失败

这是我第一次设置负载平衡器,因此请耐心等待,我会尝试提供尽可能多的细节(我会每 15 分钟检查一次这个问题,以便能够快速回复任何需要我澄清的答案。)

我从 godaddy.com 购买了一个域名,但据我所知,如果我使用亚马逊的 DNS 服务 Route 53,配置负载均衡器会更直接。

据我了解,使用 Route 53 的替代方法是转到 godaddy 控制面板mydomain.com,使用具有重写规则的实例的弹性 IP 设置 A 记录,以将所有流量从 转发到mydomain.comwww.mydomain.com然后www使用负载均衡器的地址设置 CNAME 记录。Ec2 建议不要为负载均衡器的地址设置 A 记录,因为该地址实际上会发生变化。

  1. 我启动了一个运行 ubuntu 12.04 和 lamp-server 的 ec2 实例。 ec2-**-**-**-**.compute-1.amazonaws.com可以从 url 和 ssh 访问。
  2. 我创建了一个 ping 路径为“/”的 ec2 负载均衡器,但不幸的是我的 ec2 实例没有通过健康检查,我无法将该实例添加到负载均衡器。
  3. 我在 Route 53 中为我的域名创建了一个托管区域。
  4. 我进入 godaddy 并删除了现有的 godaddy 名称服务器,并添加了 route 53 提供的 4 个名称服务器。
  5. 最后,我进入 Route 53 并创建了一个带有别名目标的 A 记录,指向负载均衡器的地址 **.us-east-1.elb.amazonaws.com。

我的最终目标是当有人访问mydomain.com该 URL 时,该 URL 将通过路由 53 进行解析,并且负载均衡器会将流量引导至 ec2 实例。

关于如何让它工作,有什么想法吗?(注意:我大约 12 小时前完成了第 5 步,所有 DNS 更改都已传播,因为mydomain.com加载的是空白页,而不是 godaddy 模板

编辑

curl -v localhost返回HTTP/1.1 200 OK

curl -v abcloadbalancer-123124.us-east-1.elb.amazonaws.com.返回HTTP/1.1 503 Service Unavailable: Back-end server is at capacity

curl -v mydomain.com返回HTTP/1.1 503 Service Unavailable: Back-end server is at capacity

安全组无论如何都允许从端口 80(0.0.0.0)

答案1

确保已将 AWS ELB 安全组添加到实例的安全组,以便能够访问您的实例。如果您不允许世界 (0.0.0.0/0) 访问端口 80,则需要专门允许 AWS ELB SG,否则它甚至无法访问您的服务器来运行健康检查。

如果你在端口 80 上运行,请确保允许amazon-elb/sg-5a9c116a(amazon-elb-sg)在您的实例所属的安全组中。

如果 ELB 上的所有实例都显示为不健康,您将看到 503 错误。

相关内容