多个容器负载均衡器 AWS 的目标组

target group for multiple containers load balancer AWS

我在 ecs 上部署了 3 个容器,流量由应用程序负载均衡器分配,可以通过 52.XX.XXX.XXX/swagger.

访问这些容器上的 swagger

我需要通过以下方式访问服务,例如:

52.XX.XXX.XXX/users/swagger
52.XX.XXX.XXX/posts/swagger 
52.XX.XXX.XXX/comments/swagger

我尝试添加以下负载均衡器规则

PATH /users* or /users/
PATH /posts* or /posts/
PATH /comments* or /comments/

当我访问负载均衡器 dns 时出现 404 错误,例如 myapp-lb-4283349.us-east-2.elb.amazonaws.com/users/swagger

仅靠 AWS Load Balancer 无法实现这一目标。 AWS LB 不会根据路径重新路由流量。他们只是 转发 传入流量到源。

您的服务应该可以通过 52.XX.XXX.XXX/user/swagger 52.XX.XXX.XXX/posts/swagger 等访问,以便 Load Balancer 转发它。您不能像这样转发(或重新路由)来自 Load Balancer 的流量:

LB_URL/user/swagger -> IP/swagger

缺少的 /user/ 部分不是 Load Balancer 可以为您做的。更新您的应用程序本身并添加您要收听的特定路由。