HTTP重定向到带有Load Balancer的HTTPS AWS EC2

时间:2015-01-20 03:49:53

标签: apache ssl amazon-web-services amazon-ec2

这是我的设置:

EC2与Apache使用弹性负载均衡器。

我希望将所有http流量自动重定向到https。我找到了这个,并通过添加到我的httpd.conf文件中尝试了它:

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
</VirtualHost>

但是,在重新启动服务器之前或之后,这没有用。 HTTP没有重定向,我的网站抛出了各种错误,直到我从配置中删除了规则。

我认为我错误地更新了文件或者错误地设置了负载均衡器。对于负载均衡器的监听器,我有LB协议HTTP,端口80,实例协议HTTP和实例端口80.我在端口443上有LB协议HTTPS,实例端口443.我的SSL在后一种协议上。

知道从哪里开始?

1 个答案:

答案 0 :(得分:3)

您提到的配置应该运行良好。问题可能是未加载mod_rewrite模块。将以下行添加到您的apache配置中以加载重写模块。

LoadModule rewrite_module modules/mod_rewrite.so

您可以尝试以下配置,这比您使用的配置简单得多。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}