我们有2个EC2实例,Nginx和Unicorn运行Rails。我们在EC2中启动了Load Balancing选项。接下来,我们购买了SSL证书并使其在Load Balancer上运行。因此,现在我们有网址为https://app.mydomain.com工作。我们从Load Balancer的监听器中删除了HTTP。现在,我们需要以某种方式将http://app.mydomain.com的任何传入请求路由到https://app.mydomain.com。关于我们如何实现这一目标的任何建议?
提前谢谢。
答案 0 :(得分:1)
我有同样的情况,我通过以下方式解决:
您需要将负载均衡监听到端口80并进入您的ec2 instace,它作为节点运行,您可以将其配置为将任何http请求重定向到https。
在我的情况下,我在.htaccess文件中使用这一行
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule !/status https://app.mydomain.com%{REQUEST_URI} [L,R]
这是我的情况,而/ status是负载平衡检查器检查实例helath。
答案 1 :(得分:0)
ELB设置X-Forwarded-Proto
标头,您可以使用它来检测原始请求是否是HTTP,然后重定向到HTTPS。
看看ELB docs。
答案 2 :(得分:-1)
您需要在apache或nginx文件中进行配置。使用此链接获取详细帮助。 https://serverfault.com/questions/67316/in-nginx-how-can-i-rewrite-all-http-requests-to-https-while-maintaining-sub-dom