2

我有一个在端口 80 上侦听 HTTP 流量的 ALB,我在 ALB 侦听器中添加了一个目标组,它由一台 EC2 机器组成。我的 EC2 实例在不同的端口上运行多个微服务,例如。App1 在 8080 上运行,App2 在 8001 上运行,App3 在 8004 上运行……EC2 再次在端口 80 上侦听任何通过 ALB 传入的请求。我想根据路径为到 EC2 的传入流量到不同的应用程序端口做一个基于路径的路由,例如,

“/users” -> 8080 上的应用程序;“/get/info”-> 8001 等

. 有没有办法实现它?或者有什么更好的方法来做我正在尝试的事情?现在我已经完成了基于 ip-tables 的路由,将流量从 EC2 的端口 80 路由到单个端口,即 8080,但这仅服务于我众多微服务中的一个。我如何配置它来为所有这些服务?

4

1 回答 1

8

这正是应用程序负载均衡器的设计目的。

您可以创建多个目标组。每个目标群体都有:

  • 一个名字
  • 一个目标(例如端口 8080 上的 HTTP)
  • 健康检查配置以确定目标是否健康

因此,您将为正在运行的每个应用程序创建一个目标组。

然后,您可以将 Amazon EC2 实例与每个目标组相关联。在您的情况下,如果一切都在单个 Amazon EC2 实例上运行,您可以将同一个实例与所有目标 Groups 相关联

然后,创建Application Load Balancer(或将目标组关联到现有的 Application Load Balancer)。

在 Application Load Balancer 配置中,转到 Listeners 选项卡并添加将特定路径(例如/users)发送到特定目标组的规则。

看:

于 2019-07-03T23:14:53.660 回答