我有一个使用硬件负载均衡器的工作设置,它以这样一种方式控制重定向:所有对http://example.com/login/ *的请求都被重定向(使用HTTP 302)到https://example.com/login/ *和所有非请求for / login被反向重定向到HTTPS。
这允许我在SSL中包装登录功能和用户/密码交换,但另外避免加速与加密的连接,并解决某些浏览器中嵌入式内容混合内容警告的一些问题。
然而,负载平衡是寿命结束,我正在寻找替代解决方案,最好是在软件中。
我认为HAproxy将能够作为我的加载balacing解决方案,但我只能找到配置示例和文档,用于重定向从HTTP到HTTPS的所有内容,反之亦然。
是否可以使用HAproxy做我提议的事情,还是应该寻找其他解决方案?
我意识到我需要使用HAproxy的开发版本来支持SSL。
答案 0 :(得分:1)
我建议您不要为生产环境使用DEV版本。
要回答你的问题,我会假设您将使用HAProxy 1.4版:
是否可以使用HAProxy做我提议的事情,还是应该寻找其他解决方案?
是。这是可能的,但您必须使用其他软件来处理HTTPS
流量。 Stunnel被证明在这方面很好。所以我会说设置将是:
HAProxy 1.4
# Redirect http://../login to https://../login
frontend HTTPSRedirect
bind 1.2.3.4:80
default_backend AppServers
redirect prefix https://www.domain.com/login if { path_beg -i /login }
# Handler for requests coming from Stunnel4.
frontend HTTPReceiver
bind 5.6.7.8:80
default_backend AppServers
<强> Stunnel4 强>
[https]
accept=443
connect=5.6.7.8:80 (HAProxy IP)