Nginx aws ecs上docker容器中的ssl重定向
我有一个前端angular应用程序在aws ecs ec2的nginx docker容器中运行。这是一个saas产品,其他第三方域名将指向此前端docker容器。我已经为该目标组设置了默认规则,但我想知道如何为每个域设置ssl。ALB目前只支持100条侦听器规则,即实际上每个侦听器只有50条规则(考虑80条和443条) 后端API已经填写了30条规则 如果我有150个域需要指向此前端,如何设置ssl?如果我在nginx的端口80 vhost中设置301重定向,就像Nginx aws ecs上docker容器中的ssl重定向,nginx,amazon-ecs,amazon-elb,Nginx,Amazon Ecs,Amazon Elb,我有一个前端angular应用程序在aws ecs ec2的nginx docker容器中运行。这是一个saas产品,其他第三方域名将指向此前端docker容器。我已经为该目标组设置了默认规则,但我想知道如何为每个域设置ssl。ALB目前只支持100条侦听器规则,即实际上每个侦听器只有50条规则(考虑80条和443条) 后端API已经填写了30条规则 如果我有150个域需要指向此前端,如何设置ssl?如果我在nginx的端口80 vhost中设置301重定向,就像 return 301 http
return 301 https://$host$request_uri
请求将再次传递到应用程序负载平衡器端口443,它将采用默认ssl,并可能导致ssl错误。我们是否有可能在不再次返回应用程序负载平衡器的443端口的情况下进行nginx https重定向?还是其他方法?我认为多域ssl证书在这里是一个选项,因此可以将其作为负载平衡器上的默认ssl。您有权访问所有这些域的ssl证书吗?如果是,您可以在nginx容器中配置它们。使用网络负载平衡器而不是ALB,并在端口443上添加一个TCP侦听器,该侦听器不会终止SSL,并将流量重定向到将终止证书的nginx容器
您还可以动态重新加载nginx配置以动态设置证书。AWS负载平衡器现在支持SSL重定向,因此您无需在容器上执行此操作 此外,您的443侦听器可以添加多个证书。因此,只需将所有证书添加到负载平衡器上的443侦听器 然后,在443侦听器规则中,只有一条规则:
- IF:否则不会路由的请求
- 然后:
- HTTPS,端口443
- 重定向到“原始主机、路径、查询”
- 状态为“301-永久移动”
如果您遇到负载平衡器的限制,您可能必须将它们“分块”为2或3个ALB,但我发现这更容易管理,尤其是在证书更改时间到来时。Yeh,我将拥有所有域的ssl证书。我在端口80和443(TCP)上配置了网络负载平衡器,ecs服务上的容器端口设置为端口443。看起来我们只能配置一个容器端口。在https上,站点正在加载docker上的ssl,但在端口80上,它显示“普通HTTP请求已发送到https端口”。知道我们如何在docker集装箱上将流量路由到80号和443号港口吗?