我正在尝试使用ELB部署一些nodejs站点,并且ELB和EC2实例的安全组都存在一些问题。
我想做的是,允许ELB接受端口80请求并将它们转发到EC2实例上的端口3000,我不希望EC2实例可以直接从Internet访问,它们应该只是通过负载均衡器可以访问(在端口3000上)。
所以在我的公共子网的VPC中,我有:
这不起作用。如果在EC2实例上,我允许端口3000从0.0.0.0/0开始工作。
但是我可以使用实例的公共IP转到实例而不用通过负载均衡器。
根据我的理解,这应该是可能的,还是我错过了什么?
谢谢, 乔
答案 0 :(得分:2)
除了你已经拥有的,你需要这些:
设置一个将80(HTTP)转发到3000(HTTP)的ELB 从0.0.0.0/0
接受端口80上的入站流量的安全组
您还需要在端口3000上从ELB到运行EC2实例的私有子网进行出站访问。
这不起作用。如果在EC2实例上,我允许端口3000从0.0.0.0/0开始工作。
这让我相信您的EC2实例正在您的VPC的公共子网中运行。它应该在VPC的私有子网中运行。
此外,请确保您的ELB正在您的VPC的公共子网中运行。
答案 1 :(得分:0)
听起来好像LB不在VPC中,或者服务器所在的安全组不在VPC中。
附上下面的一些图片: