Nginx aws ecs上docker容器中的ssl重定向

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

我有一个前端angular应用程序在aws ecs ec2的nginx docker容器中运行。这是一个saas产品,其他第三方域名将指向此前端docker容器。我已经为该目标组设置了默认规则,但我想知道如何为每个域设置ssl。ALB目前只支持100条侦听器规则,即实际上每个侦听器只有50条规则(考虑80条和443条)

后端API已经填写了30条规则

如果我有150个域需要指向此前端,如何设置ssl?如果我在nginx的端口80 vhost中设置301重定向,就像

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-永久移动”
现在,您的所有http请求都将被发送回用户,并重定向回HTTPS,而不会命中您的容器或nginx。当它们以HTTPS的形式返回时,AWS ALB拥有它的所有证书


如果您遇到负载平衡器的限制,您可能必须将它们“分块”为2或3个ALB,但我发现这更容易管理,尤其是在证书更改时间到来时。

Yeh,我将拥有所有域的ssl证书。我在端口80和443(TCP)上配置了网络负载平衡器,ecs服务上的容器端口设置为端口443。看起来我们只能配置一个容器端口。在https上,站点正在加载docker上的ssl,但在端口80上,它显示“普通HTTP请求已发送到https端口”。知道我们如何在docker集装箱上将流量路由到80号和443号港口吗?