AWS NLB:根据路径将请求转发到单个主机的不同端口
AWS NLB: forwarding request to different ports of a single host based on Path
使用此流程:
外部世界 --> AWS API 网关 ---> VPC Link ---> 网络负载均衡器 ---> 我的单个 EC2 实例
如何配置 AWS 网络负载均衡器,以便:
对 https://myapp.com
的请求被路由到我的 EC2 实例的端口 80
。
对 https://myapp.com/api/*
的请求被路由到我的 EC2 实例的端口 3000
。
?
目前我只在 NLB 上配置了一个侦听端口 80
的侦听器,来自 API 网关的所有流量都路由到我的 EC2 实例的端口 80
。
我发现在 Application Load Balancer 中,您可以配置将路径映射到不同端口的“规则”:Path based routing in AWS ALB to single host with multiple ports
这对 NLB 可用吗?
网络负载均衡器无法做到这一点,因为它在没有路径概念的网络堆栈级别上运行。
NLB 在第 4 层运行,支持 TCP 和 UDP 协议。这些本质上在两台机器上的端口之间创建了一个连接,允许数据在它们之间流动。
HTTP(S) 中的路径路径是第 5 层以上的概念,属于 HTTP 协议。 NLB 无法使用它们,因为它只能根据保证在那里可用的数据工作。
您可以使用应用程序负载均衡器作为网络负载均衡器的目标,然后在那里配置基于路径的规则,因为 ALB 是第 5 层以上的负载均衡器并且理解第 5 层协议 HTTP。
这是一篇详细介绍此内容的博客:Application Load Balancer-type Target Group for Network Load Balancer
使用此流程:
外部世界 --> AWS API 网关 ---> VPC Link ---> 网络负载均衡器 ---> 我的单个 EC2 实例
如何配置 AWS 网络负载均衡器,以便:
对
https://myapp.com
的请求被路由到我的 EC2 实例的端口80
。对
https://myapp.com/api/*
的请求被路由到我的 EC2 实例的端口3000
。
?
目前我只在 NLB 上配置了一个侦听端口 80
的侦听器,来自 API 网关的所有流量都路由到我的 EC2 实例的端口 80
。
我发现在 Application Load Balancer 中,您可以配置将路径映射到不同端口的“规则”:Path based routing in AWS ALB to single host with multiple ports
这对 NLB 可用吗?
网络负载均衡器无法做到这一点,因为它在没有路径概念的网络堆栈级别上运行。
NLB 在第 4 层运行,支持 TCP 和 UDP 协议。这些本质上在两台机器上的端口之间创建了一个连接,允许数据在它们之间流动。
HTTP(S) 中的路径路径是第 5 层以上的概念,属于 HTTP 协议。 NLB 无法使用它们,因为它只能根据保证在那里可用的数据工作。
您可以使用应用程序负载均衡器作为网络负载均衡器的目标,然后在那里配置基于路径的规则,因为 ALB 是第 5 层以上的负载均衡器并且理解第 5 层协议 HTTP。
这是一篇详细介绍此内容的博客:Application Load Balancer-type Target Group for Network Load Balancer