我有同样的要求。 我有一个AWS负载平衡器指向端口80上的Web服务器。 所有HTTPS请求都使用AWS SSL证书解析,但我的客户端还要求我将所有80端口请求重定向到HTTPS。
我使用的是Apache服务器,所以我需要以下几行添加到
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
然后我重新启动Apache服务和Woala虚拟主机配置文件(httpd.conf文件)! 下面是虚拟主机的配置,你需要为你的子域做同样的,例如www.yourdomain.com
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
ServerAdmin [email protected]
DocumentRoot "/apache2/htdocs/YourDomainFolderWeb"
ServerName yourdomain.com
ErrorLog "logs/yourdomain.com-error_log"
CustomLog "logs/yourdomain.com-access_log" common
</VirtualHost>
希望工程。 的更多信息: https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/
最佳
问题您链接到有回答你的问题。 TCP负载平衡器在第4层左右运行,既没有协议感知,也没有操纵负载的能力以添加HTTP标头。 HTTP(S)负载均衡器在第7层操作,并且能够操纵负载以添加标头。 – 2014-10-30 01:12:48
[Amazon Elastic Load Balancer未填充x -forward-proto头]的可能重复(http://stackoverflow.com/questions/19049320/amazon-elastic-load-balancer-is-not-populating-x-forwarded-原始标题) – 2014-10-30 01:13:20
@Michael - sqlbot - 感谢您的解释 – naveen 2014-10-30 15:48:03