AWS Load Balancer 将流量路由到具有多个微服务的一个目标组
AWS Load Balancer to route traffic to one target group with multiple microservices
我有 ALB 侦听端口 80 上的 HTTP 流量,我在 ALB 侦听器中添加了一个目标组,它由一台 EC2 机器组成。我的 EC2 实例在不同端口上运行多个微服务,例如。 App1 在 8080 上运行,App2 在 8001 上运行,App3 在 8004 上运行,依此类推......EC2 再次在端口 80 上侦听通过 ALB 的任何传入请求。我想根据路径对传入 EC2 的流量进行基于路径的路由,例如
"/users" -> app on 8080 ; "/get/info" -> 8001 etc
。有没有办法实现它?或者有什么更好的方法来做我正在尝试的事情吗?现在我已经完成了基于 ip-tables 的路由,将流量从 EC2 的端口 80 路由到单个端口,即 8080,但这只服务于我的许多微服务中的一个。我如何配置它来为所有这些服务?
这正是 Application Load Balancer 的设计目的。
您可以创建多个目标组。每个目标群体有:
- 一个名字
- 一个目标(例如端口 8080 上的 HTTP)
- 健康检查配置以确定目标是否健康
因此,您 为每个应用程序创建一个目标组 您是 运行。
然后您可以将 Amazon EC2 实例与每个目标组相关联。在您的情况下,如果所有内容都在单个 Amazon EC2 实例上 运行,您可以 将同一实例与所有目标组相关联 。
然后,创建 Application Load Balancer(或将目标组关联到现有的 Application Load Balancer)。
在应用程序负载均衡器配置中,转到侦听器选项卡并添加将特定路径(例如/users
)发送到特定目标组的规则。
参见:
我有 ALB 侦听端口 80 上的 HTTP 流量,我在 ALB 侦听器中添加了一个目标组,它由一台 EC2 机器组成。我的 EC2 实例在不同端口上运行多个微服务,例如。 App1 在 8080 上运行,App2 在 8001 上运行,App3 在 8004 上运行,依此类推......EC2 再次在端口 80 上侦听通过 ALB 的任何传入请求。我想根据路径对传入 EC2 的流量进行基于路径的路由,例如
"/users" -> app on 8080 ; "/get/info" -> 8001 etc
。有没有办法实现它?或者有什么更好的方法来做我正在尝试的事情吗?现在我已经完成了基于 ip-tables 的路由,将流量从 EC2 的端口 80 路由到单个端口,即 8080,但这只服务于我的许多微服务中的一个。我如何配置它来为所有这些服务?
这正是 Application Load Balancer 的设计目的。
您可以创建多个目标组。每个目标群体有:
- 一个名字
- 一个目标(例如端口 8080 上的 HTTP)
- 健康检查配置以确定目标是否健康
因此,您 为每个应用程序创建一个目标组 您是 运行。
然后您可以将 Amazon EC2 实例与每个目标组相关联。在您的情况下,如果所有内容都在单个 Amazon EC2 实例上 运行,您可以 将同一实例与所有目标组相关联 。
然后,创建 Application Load Balancer(或将目标组关联到现有的 Application Load Balancer)。
在应用程序负载均衡器配置中,转到侦听器选项卡并添加将特定路径(例如/users
)发送到特定目标组的规则。
参见: