【问题标题】:Mapping different https subdomains to different ECS containers on same application load balancer?将不同的 https 子域映射到同一应用程序负载均衡器上的不同 ECS 容器?
【发布时间】:2021-10-20 02:13:12
【问题描述】:
我正在使用Docker ECS integration 部署一个应用程序和它所依赖的网络服务。两者都应该在不同的子域上通过 HTTPS 运行。
我的问题是,两者都需要通过 HTTPS 运行,但由于 ECS docker 仅创建了一个负载均衡器,看来我只能将其配置为将 https 流量转发到一个目标组。有没有办法让它工作?
【问题讨论】:
标签:
amazon-web-services
docker-compose
amazon-ecs
amazon-route53
amazon-elb
【解决方案1】:
是的,当您将 HTTPS 侦听器添加到负载均衡器时,请将默认规则设置为转发到目标组之一(可能是主 Web 应用程序)。但是然后返回侦听器列表并单击“查看/编辑规则”。然后,您可以为每个附加服务添加主机标头规则。主机标头仅等于域名,包括子域,例如service-A.example.com。这样,一个 HTTPS 侦听器可以处理同一应用程序负载均衡器上的每个子域。这方面的文档是here。
注意:如果 HTTP 和 HTTPS 侦听器不可用,您可能不小心创建了网络负载平衡器。当您的至少一项服务公开 80 或 443 以外的端口时,就会发生这种情况。要让 force it 成为应用程序负载均衡器(它将让您转发 HTTP 和 HTTPS 流量),您的 docker-compose 配置需要如下所示:
test:
image: mycompany/webapp
ports:
- target: 8080
x-aws-protocol: http