我有一个典型的ECS基础架构,在ALB后面只有一个应用程序。我利用动态主机映射进行CD处理(ECS可以在同一主机上部署新的容器,而不会发生端口冲突)。
现在我想在前面添加一个nginx容器(用于从ALB到EC2的SSL )。问题是,在nginx配置中,我必须使用端口指定app端点。由于端口是动态分配的,我不能将这个值硬编码到nginx配置中。我该如何处理这个问题呢?
发布于 2017-11-10 01:36:10
我不认为尝试到达这个动态端口有多大意义...
目前您只有一个nginx服务器在运行,所以您有一个应用程序负载均衡器,它将端口80上的传入流量定向到与您的web服务器容器对应的随机端口上的EC2实例。
<ALB domain name>:80 -> <container EC2 instance IP>:<container dynamic port>但是,如果您的服务是向上扩展的,那么您将有两个容器,运行在两个不同的端口上,可能运行在不同的EC2实例上。
<ALB domain name>:80 -> <container EC2 instance IP>:<dynamic port>
-> <container2 EC2 instance IP>:<another dynamic port>您的ALB将轮询这些容器中的每个容器。
在其动态端口上直接映射到这些容器之一将会因为绕过负载均衡器而失去它的优势。
因此,添加SSL的代理必须在其内部域名(或您在Route 53中分配的域名)上的端口80上到达负载均衡器本身。
发布于 2017-10-27 01:42:24
您可以使用JWilder Nginx Proxy docker容器。这允许您使用可在ECS中配置的环境变量进行动态映射。
https://stackoverflow.com/questions/46960311
复制相似问题