基于请求标头的路由(使用 AWS Application Load Balancer)
Posted
技术标签:
【中文标题】基于请求标头的路由(使用 AWS Application Load Balancer)【英文标题】:Routing based on request headers (using AWS Application Load Balancer) 【发布时间】:2017-01-14 23:19:40 【问题描述】:第 7 层负载平衡器更复杂、更强大。它 检查数据包,可以访问 HTTP 和 HTTPS 标头,并且(武装 有更多信息)可以做一个更聪明的工作来传播 加载到目标。
https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/
我了解 AWS Application Load Balancer 可以访问 HTTP(S) 请求标头,但我只能看到您如何通过路径进行路由。有人可以解释我如何根据user-agent
标头进行路由。如果不可行,请建议另一种 AWS 方法。
【问题讨论】:
现在可以了:aws.amazon.com/blogs/aws/… 【参考方案1】:直到 2017-05-26 ALB 没有基于标头的路由。随着 2017 年 4 月 5 日的更新,它包含了Host based routing。目前它仅支持基于路径和主机的路由。您可以访问here 了解最新的 AWS 信息。
如果你想基于 headers 进行路由,目前 ALB 中没有选项。 您必须有一个附加层,例如代理/nginx 服务器。 流程可以如下所示。
-
客户端调用https://example.com
ALB 的 DNS 配置为 example.com
ALB 附加了具有 nginx 实例的目标组。 Nginx 实例使用标头信息路由到相应的负载均衡器。 (例如,如果 customerId 是 123 路由到 ELB 1 否则路由到 ELB 2)
两个 ELB 连接了不同的 EC2 实例。
但听说 AWS 正在处理基于标头的路由请求。
【讨论】:
【参考方案2】:对于现在查看的任何人,截至 2019 年 3 月 27 日,ALB now support 路由基于除 Host 标头之外的 HTTP 标头。
【讨论】:
以上是关于基于请求标头的路由(使用 AWS Application Load Balancer)的主要内容,如果未能解决你的问题,请参考以下文章
基于 Content-Type 标头的 Expressjs 路由器
AWS-amplify 在请求中包含 cognito Authorization 标头