当前设置

当前设置

当前设置

给定以下 ALB DNS:

  • my-alb-dns.com

以及在 ECS 中运行的以下容器:

  • container-a
  • container-b

我对其进行了配置,以便可以路由通过 ALB 的流量通过路径重写到我的 ECS 集群中的相应服务:

  • my-alb-dns.com:80/container-a/my/endpoint -> container-a:8080/my/endpoint
  • my-alb-dns.com:80/container-b/my/endpoint -> container-b:8080/my/endpoint

这很好(通过使用 nginx),但我在问自己,是否真的需要使用额外的 nginx 服务器来实现路径重写。是否有计划通过自定义路径重写规则来扩展 ALB 功能?到目前为止,我找不到任何相关信息在文档中

我也看了Lamda@Edge但我认为,仅仅为了简单重写而引入 CloudFront 和 Lamda 有点小题大做(相比之下,nginx 只需要 1 行配置)。

关于这一点,是否有任何最佳实践,或者我应该继续希望 AWS 能够在遥远的未来实现它并坚持使用我当前的 nginx 解决方案?

答案1

ALB 不支持修改请求,而且我不知道有任何计划包含此功能。这是一个巨大的麻烦,所以我并不惊讶 AWS 暂时不理会它。坚持使用 nginx(或等效产品,如 haproxy),或修改您的应用程序以接受/container-X请求路径中的前缀。

答案2

如果您的应用程序可以支持,在类似情况下我会使用基于主机的路由而不是基于路径的路由。

例如

service1.mydomain.com -> myalb.com -> tg1 -> container1:8000
service2.mydomain.com -> myalb.com -> tg2 -> container2:8001

您的应用程序将调用

service1.mydomain.com

代替

mydomain.com/service1

相关内容