gpt4 book ai didi

amazon-elb - ELB 没有将流量路由到健康的实例

转载 作者:行者123 更新时间:2023-12-01 11:41:33 38 4
gpt4 key购买 nike

这似乎与子网/可用区有关,但我是使用 VPC 的新手,它让我望而却步。

专有网络:10.80.0.0/16
子网:10.80.1.0/24 (us-east-1b)
子网:10.80.2.0/24 (us-east-1a)

所有实例都是 Windows Server 2012。

我在我的 VPC (10.80.0.0/16) 中创建了一个面向互联网的 ELB。从 AZ us-east-1a 添加了一个实例,它位于子网 10.80.2.0/24 上。该实例正在运行 IIS 7.5,在端口 80 上运行一个应用程序,并设置/health.aspx 用作 ELB 运行状况检查。

VPC 上的内部流量正常流动(不受限制)。我可以从 us-east-1b (10.80.1.0/24) 中的另一个实例从这个实例请求 health.aspx。我还可以将文件从一个实例复制到另一个实例。

出站流量不受限制。我可以 RDP 到实例(当连接到我们的 VPN 时)并打开浏览器并请求网页并获取它。

ELB 说实例是健康的,我可以在 IIS 日志中看到对 health.aspx 的请求。 ELB和实例都配置了允许80和443的安全组。

但是,如果我尝试通过开放的互联网请求 {elb-url}/health.aspx,请求就会超时。同样,对于与实例关联的弹性 IP,对 {elastic-ip}/health.aspx 的请求会超时。

最佳答案

@Chris,感谢您的回复...碰巧,我已经在 friend 的帮助下解决了这个问题。我会在这里发布我的发现供后代使用(以防其他人同样对 ELB 的工作原理感到困惑)。

这个用图表会更清楚。但总结是,在每个可用区中,您需要同时创建一个公共(public)子网和一个私有(private)子网。当您将可用性区域添加到您的 ELB 时,您需要为该区域选择公共(public)子网。在我进行此设置之前,这已经在 us-east-1b 中完成,我只是错过了 ELB 配置的这种细微差别。所以对于新的可用区,我必须这样做......

us-east-1c私有(private)子网 10.1.3.0/24(使用 nat 实例作为默认路由)公共(public)子网 10.1.4.0/24(使用互联网网关作为默认路由)

然后我的实例按预期进入私有(private)子网。而这整件事的关键是(鼓声......)

当我将 us-east-1c 添加到我的 ELB 时,我必须选择 public 子网...10.1.4.0。否则实例将通过健康检查(因为 ELB 可以与我整个 VPC 中的任何实例通信)但服务器的响应无法返回到公共(public)互联网。

这就是令人困惑的地方。我仍然不完全理解它。例如,该实例可以请求 www.google.com。我可以通过 RDP 访问它并打开浏览器并获取网页。但是来自主机(比如我家的笔记本电脑)的请求将会消失。奇怪。

PS:另一个注意事项...确保您使用足够的 NAT 实例来加载。我认为我们遇到了一个问题,我们的 NAT 实例只是用完了端口,因为太多的 Web 服务器试图通过它路由出站连接到第 3 方 API。老实说,我在这个级别的网络/操作系统故障排除方面做得不够好。但我的理论是我们的 8 个 IIS 实例持有太多对 NAT 实例开放的连接。我们还在那个微型实例上滥用了 NIC。我将我们升级到两个大型实例,每个 AZ 一个,然后事情就顺利了。两个 NAT 实例都在嗡嗡作响,我们再也看不到 IIS 中的挂起进程。

关于amazon-elb - ELB 没有将流量路由到健康的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20059769/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com