使用Application Load Balancer将流量路由到在3个AWS ECS EC2实例上运行的其他微服务

时间:2019-01-16 18:47:49

标签: docker microservices amazon-ecs aws-application-load-balancer

我是微服务的新手。我的团队正在开发新的应用程序,它将在20个微服务中分布在3个AWS ECS EC2实例上。每个docker容器都将在任何高端口(主机端口)上侦听并将请求转发到docker的端口80

我的要求是 domain.com/core >>应该路由到“核心” docker容器 域/客户>>应路由到“客户” Docker容器

我正在测试应用程序负载平衡,以便将domain.com/core规则转发到相应的目标组,并通过docker容器的相应高端口(主机端口)注册该目标组。

但是它没有按我预期的那样工作

我猜想当domain.com/core被调用时,它正在路由到相应的docker容器,但是与其寻找“ core”微服务的doc根目录,它实际上是在该目录的doc根目录下寻找目录“ core” micorservice。有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

是的。通常在ALB和您的docker服务之间放置一个负载均衡器。使用nginx时,配置将如下所示:https://serverfault.com/questions/562756/how-to-remove-the-path-with-an-nginx-proxy-pass

如果要避免在应用程序前面放置另一个负载平衡层,可以尝试在应用程序层上解决它,只需使用/ core或/ customer前缀广播所有服务即可。

遗憾的是,ALB不支持重写URL。

这也是人们大量使用子域而不是url路径的部分原因;)customer.domain.com core.domain.com