无法连接到面向Internet的NLB,将流量转发到私有实例

时间:2019-03-14 19:01:54

标签: amazon-web-services amazon-ec2 aws-load-balancer nlb

我已经按照以下配置配置了云

  1. VPC在两个可用区中具有公用和专用子网。公共子网具有Internet网关,私有子网具有已配置的NAT网关
  2. 面向互联网的网络负载平衡器,允许在两个可用区域中配置TCP流量
  3. 用于转发来自负载均衡器的流量的目标组
  4. 专用子网中的EC2实例在端口80上配置了haproxy侦听功能。它的安全组被配置为从配置了NLB的两个子网的端口80接受TCP流量。
  5. 将此实例添加到目标组中,状态为健康

当我尝试访问NLB DNS时,出现了“连接超时” 错误。我期望当我访问NLB DNS时,应该将我转发到私有实例。我已经检查了许多link这样的AWS文档,但仍然找不到解决此问题的方法。如果还不够,请随时询问更多信息。

1 个答案:

答案 0 :(得分:1)

  

它的安全组已配置为从配置了NLB的两个子网的端口80接受TCP流量

通过实例ID注册目标时,面向Internet的NLB后面的实例的安全组需要允许0.0.0.0/0以上的流量-或需要通过平衡器访问它们的任何范围的公共IP地址- -不只是平衡器的子网(健康检查所需的子网)。

  

如果目标类型是实例,则将规则添加到安全组中,以允许从负载均衡器和客户端到目标IP的流量。

     

https://aws.amazon.com/premiumsupport/knowledge-center/security-group-load-balancer/

与ALB和Classic平衡器不同,当通过instance-id配置目标时,NLB流量具有外部客户端的源地址,这是安全组要匹配的地址。