在SSL终止负载平衡器之后的EC2实例上进行SSL重定向


11

我正在尝试将所有URL重定向到Web应用程序中的https。

我在弹性负载平衡器后面有一个ec2实例。SSL在负载均衡器上终止。

任何重定向尝试最终都会给我熟悉的“此页面正在以一种永远无法完成的方式进行请求”。

负载平衡器将443和80转发到实例上的端口80。

这就是我的.htaccess文件中的内容。

RewriteCond %{X-FORWARDED-PROTO} !=on  
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

有谁知道如何做到这一点?谢谢,

Answers:


17

未经测试..但我尝试了

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto


1
是! 非常感谢。一直为此苦苦挣扎了一段时间。非常感激。如果您有帮助,请支持这是答案。谢谢...
rix

链接已断开
Bill Rosmus 2013年

解决方案仍然有效。可以在这里找到一些解释:docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/…–
Tim

为我工作。今天试射
本·辛克莱尔

0

Mike的回答大部分是正确的,但必须指出的是,负载均衡器仍将需要执行其运行状况检查例程,以确保ec2实例仍然有效。这可以通过额外的方式完成RewriteCond

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/alive\.html$
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

... alive.html您的健康检查文件的名称在哪里。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.