将AWS的8000端口从ELB转发到EC2的8000端口。

3
我有一个带有多个EC2实例的ELB,这些实例都注册在目标组中。我正在使用端口运行一个PHP应用程序,它已经正常运行并且具有SSL。
我想要使用端口8000来运行我的Node应用程序。我想要做的是将my-elb-address:8000转发到任何一个EC2 IP:8000。因此,当我访问附加到ELB的域名并带有端口8000时,它会将请求转发到具有端口8000的EC2上。我该如何实现这一点?是否有其他ELB监听和转发多个端口的方法?
我已经为我的ELB添加了端口80、443和8000的监听器,请帮忙解决。
1个回答

3

经典ELB

使用“经典”ELB,您可以在AWS控制台中定义自定义规则以转发端口:

enter image description here

请注意,请求将被转发到所有可用实例,这意味着在上面的示例中(假设php运行在80端口,node.js 运行在8000端口),所有实例都必须同时运行这两个服务。如果服务位于不同的实例上,则需要两个不同的负载均衡器,每个端口一个。

应用程序ELB

另一种选择是使用“应用程序”ELB(ALB)。 此选项将允许使用细粒度规则的单个负载均衡器,针对每个协议将请求转发到一组实例。

  • 创建一个“默认”ALB
  • 添加一个新的目标组(请参见侧边栏中负载平衡部分下的条目),监听您的自定义端口
  • 注册运行您的node.js应用程序的实例(右键单击目标组)
  • 将目标组绑定到ALB的侦听器上

另一种解决方案可能是指定基于路径的规则,仅使用一个端口(443),并仅将/to_nodejs下的请求转发到8000端口。


说实话,我一直在尝试在我的负载均衡器的“监听”选项卡下找到它,但我找不到这个界面。你可以告诉我在哪里可以找到它吗? - Mihir Bhende
好的,谢谢,我明白了,它在ELB设置向导中。 :| - Mihir Bhende
您也可以从监听器选项卡中编辑现有的调用方。 - Cavaz
实际上,我有一个应用程序负载均衡器,但它没有这样的选项。我不得不为此创建一个经典的负载均衡器。:\ - Mihir Bhende
ALB不允许您指定要转发到的自定义端口,只能监听。所有内容仍将在端口80或443下转发。 - Cerin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接