首页 > 解决方案 > 如何向 AWS 负载均衡器添加逻辑以将请求转发到特定集群

问题描述

我目前正在尝试在我的 AWS LB 中添加一些逻辑,以根据传递给请求的标头之一将请求转发到不同的集群,但我只设法找到了一种重定向方法。因为对于转发,我需要使用目标组(目前已经使用)。

我正在考虑使用 lambda 函数,但我并没有真正找到一种方法以干净的方式将它放在 LB 前面。

这里应该是什么样子

service.us.domain.com: 美国负载均衡器 service.eu.domain.com: 欧盟负载均衡器 service.domain.com: 美国或欧盟负载均衡器取决于标头

任何涉及其他 AWS 解决方案的解决方案也受到欢迎。

标签: amazon-web-servicesaws-lambdaamazon-route53aws-load-balancer

解决方案


编辑

如果您尝试根据位置(例如美国或欧盟)转发到特定的负载均衡器,我建议您查看 Route 53。

您可以使用以下任一方法:

  • 如果它只是延迟,那么您可以使用延迟规则,该规则将根据用户延迟转发到负载均衡器。
  • 如果归结为目标内容要求或法律要求,您可以使用地理定位规则

对于这些规则中的任何一个,域名都需要相同。

原来的

只要每个服务器池都有自己的目标组,您就可以使用单个 Application Load Balancer 来执行此操作。

创建侦听器时,它将具有默认规则,请确保将其发送到默认目标组。完成此操作后,如果传入特定的标头和值,则可以向侦听器添加附加规则,这将转发给您的目标组。

有关此方法的更多信息,请参阅AWS 应用程序负载均衡器的高级请求路由帖子。

如果此功能不足以满足您的用例,另一种选择是在负载均衡器前添加 CloudFront 分配。然后添加一个Lambda@Edge函数作为源请求事件,这将根据您自己定义的逻辑动态更改源。

Lambda@Edge 示例函数页面上提供了一些示例函数。


推荐阅读