【问题标题】:AWS NLB: forwarding request to different ports of a single host based on PathAWS NLB:基于路径将请求转发到单个主机的不同端口
【发布时间】:2022-01-20 08:25:32
【问题描述】:

使用此流程:

外部世界 --> AWS API Gateway ---> VPC Link ---> 网络负载均衡器 ---> 我的单个 EC2 实例

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

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

  2. 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 中可用吗?

【问题讨论】:

标签: amazon-web-services aws-load-balancer aws-nlb


【解决方案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

【讨论】:

    猜你喜欢
    • 2015-07-24
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2016-05-10
    • 2013-01-19
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多