【发布时间】:2017-11-08 07:05:16
【问题描述】:
我正在尝试使用 DevOps,但我遇到了运行状况检查请求超时失败。问题是我的弹性负载均衡器向我的 EC2 实例发送运行状况检查并获得网络超时。我不确定我做错了什么。我正在关注this tutorial,并且我已经完成了包括“使用弹性负载均衡器”在内的所有步骤。我的 EC2 实例似乎工作正常,我能够从 EC2 实例中成功地在端口 9292 上 curl localhost。
我的 ELB 路由目标组通过 HTTP 打开了端口 9292,这是我的目标组中不健康的目标的屏幕截图。
我有一个 VPC,我的 EC2 实例是其中的一部分,我的 ELB 连接到同一个 VPC。我没有安装 Apache,也没有安装 nginx。据我了解,我不需要这些。我有一个 Rails Puma 服务器正在运行,我可以向服务器发送成功的 curl 请求。
我的预感是不允许我的 ELB 访问我的 EC2 实例,导致网络超时和健康检查失败。我无法找到原因。有任何想法吗?这个SO post 没有多大帮助。我的安全组是否配置错误?还有什么可能会阻止从 ELB 到我的 EC2 实例的路由请求?
另外,有没有办法查看我的 EC2 实例的网络请求/日志?我不断看到 VPC 流日志记录,但我觉得还有更简单的替代方案。
Here's something我在 AWS 论坛发帖,但无济于事。
更新:我可以从 EC2 实例中很好地卷曲目标的私有 IP。我不认为这是目标实例,我认为这与安全组设置有关。我无法确定原因,因为我基本上已经允许从负载均衡器到 EC2 实例的所有流量。
【问题讨论】:
-
您能否向我们展示您的负载均衡器上的运行状况检查配置?
-
刚刚添加!
-
我没有发现您的负载均衡器和 VPC/安全组配置有任何问题。我猜您的应用程序根本没有为
/的请求返回 200 响应代码。您的应用程序是否可能会针对该路径返回 301 响应? -
当我
curl -I localhost:9292时,它返回 200,所以我很困惑 -
您是否可以将子网中另一个框的
curl -I $InstanceIP:9292作为目标,并且与 ALB 属于同一安全组的成员?如果是,请确保您的 ALB 与目标框位于同一 AZ。
标签: ruby-on-rails amazon-web-services amazon-ec2 elastic-load-balancer