0

使用此流程:

external world --> AWS API Gateway ---> VPC Link ---> Network Load Balancer ---> my single EC2 instance

如何配置 AWS 网络负载均衡器,以便:

  1. 请求https://myapp.com被路由到80我的 EC2 实例的端口。

  2. 请求https://myapp.com/api/*被路由到3000我的 EC2 实例的端口。

?

目前我只在 NLB 上配置了一个侦听端口的侦听器,80来自 API 网关的所有流量都被路由到80我的 EC2 实例的端口。

我发现在 Application Load Balancer 中,您可以配置将路径映射到不同端口的“规则”:AWS ALB 中基于路径的路由到具有多个端口的单个主机

这在 NLB 中可用吗?

4

1 回答 1

1

这对于网络负载均衡器是不可能的,因为它在没有路径概念的网络堆栈级别上运行。

NLB 在第 4 层上运行,支持 TCP 和 UDP 协议。这些本质上在两台机器上的端口之间创建了一个连接,允许数据在它们之间流动。

HTTP(S) 中的路径路径是第 5 层以上的概念,属于 HTTP 协议。NLB 无法使用它们,因为它只能基于保证在那里可用的数据工作。

您可以使用 Application Load Balancer 作为网络负载均衡器的目标,然后在其中配置基于路径的规则,因为 ALB 是第 5 层以上的负载均衡器,并且了解第 5 层协议 HTTP。

这是一篇详细介绍此内容的博客:Application Load Balancer-type Target Group for Network Load Balancer

于 2021-12-17T12:30:43.030 回答