我有一个用例:- 我的网络服务器有大量流量,因此我需要更高的性能和更好的延迟,但是流量传入有 2 条路径。
根据我的理解,这是可以通过 aws NLB 实现的,它可扩展到每秒 1000 个请求和 100 毫秒的子延迟。
但是我有
www.jatin.com
和 www.jatin.com/somepath
,这意味着它需要基于路径的路由,这是由aws ALB
支持的。
I need performance as well as path based routing
可以通过 NLB 实现吗?
可以通过 NLB 实现吗?
可悲的是这是不可能的。 url、路径或 dns 主机名的概念仅针对OSI 模型的第 7 层 - 应用程序定义。但是,NLB 在第 4 层 - 传输 上运行。随后,NLB 无法区分任何 url 域名或路径。
据我所知,NLB 可以获得的唯一传入流量分布是基于 端口号。因此,您可以为端口 80 设置一个侦听器,为端口 88、443 等设置另一侦听器。这会起作用,因为端口(就像 IP 地址一样)是第 4 层的一部分。
只有ALB在第7层运行并且部分是CLB,因此它可以进行基于路径的路由。因此,您要么必须使用 ALB,要么尝试寻找可以在 AWS 上部署的第三方负载均衡器。
NLB 本身不可能实现这一点,因为它无法读取标头,但有一种解决方法可以实现这一点。
您的 UI 应用程序应充当 nginx 反向代理,您可以在其中定义所需的规则。
/某条路。某个路径.service