我使用 HAProxy 作为负载均衡器,我想重定向任何从 443 (HTTPS) 到 80 (HTTP) 的流量。我的网站根本不支持 HTTPS,我宁愿重定向用户,也不愿在浏览器中引起任何 SSL 警告。
我能找到的只是使用语法redirect location <to>
,但据我所知,这需要我对主机名进行硬编码。负载平衡器接收各种主机名的连接,因此希望保持相对性。
答案1
这行不通。如果用户输入https://example.com进入他们的浏览器并连接到端口 443,然后它需要SSL 已存在。如果未正确设置 SSL,您甚至无法进行重定向。
换句话说:如果用户已经连接到 443,那么您就无法再避免使用正确的 SSL。
除了正确设置 SSL 之外,保持端口关闭可能是您能做的“最佳”事情。
答案2
是的,你可以,只需将重定向规则放在主机的 SSL 前端即可……如下所示
redirect scheme http if { hdr(Host) -i the.host.com } { ssl_fc }