使用此流:
外部世界-->AWS API网关--->VPC链接--->网络负载均衡器--->我的单个EC2实例
我如何配置AWS Netword负载均衡器,以便:
-
对
https://myapp.com
的请求被路由到我的EC2实例的端口80
。 -
对
https://myapp.com/api/*
的请求被路由到我的EC2实例的端口3000
。
?
目前,我只在NLB上配置了一个侦听器,该侦听器侦听端口80
,并且来自API网关的所有流量都路由到我的EC2实例的端口80
。
我发现在应用程序负载均衡器中,您可以配置";规则";将路径映射到不同端口:AWS ALB中基于路径的路由到具有多个端口的单个主机
NLB是否提供此功能?
这在网络负载均衡器中是不可能的,因为它在没有路径概念的网络堆栈级别上运行。
NLB在第4层上运行,并支持TCP和UDP协议。这些基本上在两台机器上的端口之间创建了一个连接,允许数据在它们之间流动。
与HTTP(S(中的路径一样,路径是第5+层的概念,属于HTTP协议。它们对NLB不可用,因为它只能基于保证在那里可用的数据工作。
您可以使用应用程序负载平衡器作为网络负载平衡器的目标,然后在那里配置基于路径的规则,因为ALB是一个5+层负载平衡器,并且理解第5层协议HTTP。
这里有一个博客详细介绍了这一点:应用程序负载均衡器类型网络负载均衡器的目标组