首页 文章

仅从ELB访问Amazon EC2实例

提问于
浏览
1

我在EC2实例上部署了一个简单的网站,并创建了一个弹性负载均衡器,将流量路由到此EC2实例 .

我还在我的DNS注册商处创建了一个CNAME记录,将我的域(www.example.com)指向负载均衡器DNS名称(load-balancer-1234567890.us-east-1.elb.amazonaws.com) .

我可以通过3种不同的方式在浏览器中成功访问我的网站:

  • EC2实例公共IP(例如:54.89.99.99)

  • ELB公共DNS名称(例如:load-balancer-1234567890.us-east-1.elb.amazonaws.com)

  • 我的域名DNS(例如:www.example.com)

但是,出于安全原因,我希望只能从负载均衡器在端口80上访问我的EC2实例 .

所以,我更改了EC2实例的安全组:

  • 删除了允许来自所有源的端口80上的流量的规则(0.0.0.0/0)

  • 添加了一条规则,允许来自我的VPC的端口80上的流量(172.31.0.0/16)

  • 添加了一条规则,允许来自ELB安全组的端口80上的流量(sg-xxxxxxxx)

之后,我仍然可以从ELB DNS名称访问我的网站,但现在我无法再访问我的域名(www.example.com) . 我收到错误:ERR_CONNECTION_TIMED_OUT .

怎么了?

2 回答

  • 1

    这似乎是您的计算机或DNS服务器中的DNS缓存问题 .

    • 要清除计算机中的缓存,请使用 ipconfig /flushdns 刷新DNS

    • 如果问题仍然存在,请尝试使用traceroute www.example.com(或在Windows中跟踪www.example.com)查看它是否到达ELB . 如果源IP与当前DNS配置不同,

    • 可能是由于配置错误(仔细检查)

    • 如果未传播最新的DNS修改(如果其指向先前的配置),则等待一段时间,直到DNS服务器根据TTL值清除缓存 .

  • 0

    创建负载均衡器时,选择负载均衡器所在的AZ . 这意味着您的负载均衡器位于您的VPC内,而不在其外部(这是正常的和预期的) .

    由于您的安全组允许来自您的VPC内的流量(它复制ELB安全组,因为两者都允许流量),因此安全组设置或您的Load Balancer配置错误有问题 . 还要仔细检查负载均衡器安全组设置 .

相关问题