-1

在我的 EC2 实例上,我的应用程序使用端口 80,因此无法安装 Apache 来简单地让 ELB 运行状况检查成功。

对于 ELB 上的健康检查设置,我使用端口 - HTTP/80 Ping 路径 - /index.html

我也将此 index.html 放在 /var/www 和 /var/www/html/ 目录中。

<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML>
<BODY>
   <H1>Hi</H1>
   <P>Hello to the World.</P> 
</BODY>
</HTML>

任何线索为什么这会导致健康检查失败?没有这个,没有流量流向我的 EC2 实例。

4

2 回答 2

1

发现了问题..一旦我为我的 LB 创建了一个新的安全组并将其保留为用于 EC2 的 SG 的 IB,它就可以正常工作。在 LB 和 EC2 中保持相同的 SG 会导致它因任何原因而中断。

http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-groups.html

于 2016-08-30T17:03:33.583 回答
0

只要页面返回 200 响应,它就应该最终通过健康检查。健康检查配置包括健康检查需要返回良好结果的次数以及检查频率。因此,每 30 秒检查一次的健康计数为 5 将需要 2.5 分钟才能恢复为健康。

如果 HTTP 健康检查失败,请根据您配置的服务器在端口 8080 或 80 上尝试 TCP 健康检查

此外,以防万一,请检查您的 VPC 配置是否允许从负载均衡器连接到 EC2 实例。如果它们在同一个子网中,这将是自动的,但网络 ACL 会影响不同子网之间的连接。

还要检查以下内容;

您的 ELB 后面的实例是否运行 Web 服务器?如果是,它会返回“200”(OK)吗?如果不是,那是你的问题。

如果您正在运行返回 200 的 Web 服务,那么您的安全组是否对 ELB 开放?这意味着 ELB 的源安全组必须允许进入您的实例的安全组。

ping路径应该是您在浏览器中输入ELB的url后要点击的文件名。

于 2016-08-30T07:24:04.247 回答