0

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

我的要求是让 domain.com/core >> 应该路由到“core” docker 容器 domain/customer >> 应该路由到“customer” docker 容器

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

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

我猜当 domain.com/core 被调用时,它会路由到相应的 docker 容器,但不是查看“core”微服务的 doc root,而是实际上是在该 microservice 的 doc root 下查找目录“core”。有什么解决办法吗?

4

1 回答 1

1

是的。在 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

于 2019-01-16T18:53:53.797 回答