无法访问弹性负载均衡器后面的AWS ec2实例

无法访问弹性负载均衡器后面的AWS ec2实例

我一直在关注lynda.com 的 AWS 基本培训并且我已经成功设置了一个 EC2 实例,但是当我尝试将其放在负载均衡器后面时,我无法通过 ELB 的公共 DNS 访问它。

在 AWS 负载均衡器控制台上,显示我的实例状态为 OutOfService。根据教程,我为路径为 的负载均衡器设置了运行状况检查/heartbeat.php

我也有两个安全组设置。第一个名为负载均衡器 - 产品允许80任何人通过端口进行 HTTP 流量。我的负载均衡器属于此安全组。此外,我还有一个名为Web 层 - 产品仅允许80来自以下端口的 HTTP 流量负载均衡器 - 产品安全组和我自己的 IP,SSH 在我的 IP 上,MYSQL 流量来自它自己,Web 层 - 产品安全组。

我可以使用它自己的公共 DNS 访问该实例,并且可以通过 SSH 进入它,但无法通过负载均衡器公共 DNS 访问它。

当我 ssh 进入它并检查 NGINX 访问日志时,我发现这个日志被记录了很多次。

172.??.??.?? - - [26/Aug/2015:16:43:46 +0000] "GET /heartbeat.php HTTP/1.1" 401 203 "-" "ELB-HealthChecker/1.0"

我想我应该看到 200 状态代码,而不是 401 203。我尝试将权限递归更改/var/www/为 777 以进行测试,但没有任何效果。

答案1

如果状态检查返回 401,AWS 会认为该实例不健康并将其从 ELB 中移除。由于您没有健康的实例,因此 ELB 已关闭。

请注意,AWS/heartbeat.php通过 IP 进行访问,不是通过 DNS 名称curl -I http://<your instance IP>/heartbeat.php. 如果默认虚拟主机未提供服务,请使用检查响应并调整服务器配置。

相关内容