我有一个带有HTTPS的AWS负载均衡器,它指向一个带有HTTP的实例。问题是,我需要部分页面支持HTTP(不加密),部分页面支持加密。我通常会使用Apache的重定向将HTTP指向我想要的URL的HTTPS,但这在这里不起作用,因为我的实例只使用HTTP。如何过滤流量,以便在平衡器中只接受某些URL的HTTP?
编辑:
根据Mark的回答,我在Apache VirtualHost配置中添加了以下内容:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
您仍然可以使用Apache执行此操作,只需检查X-Forwarded-Proto
标头而不是协议即可。
以下是ELB标题文档:http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/x-forwarded-headers.html