1

我有一个使用硬件负载平衡器的工作设置,它以这样一种方式控制重定向,即所有对http://example.com/login/ * 的请求都被重定向(使用 HTTP 302)到https://example.com/login/ * 并且所有不针对 /login 的请求都从 HTTPS 反向重定向到 HTTP。

这使我可以将登录功能和用户/密码交换包装在 SSL 中,但可以避免加密连接速度变慢,还可以解决某些浏览器中嵌入内容混合内容警告的一些问题。

然而,负载平衡已经结束,我正在寻找替代解决方案,最好是在软件中。

我认为 HAproxy 将能够作为我的负载平衡解决方案,但我只能找到将所有内容从 HTTP 重定向到 HTTPS 的配置示例和文档,反之亦然。

是否可以使用 HAproxy 执行我建议的操作,还是应该寻找不同的解决方案?

我意识到我需要使用 HAproxy 的开发版本来支持 SSL。

4

1 回答 1

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
    
  • 隧道4

    [https]
    accept=443
    connect=5.6.7.8:80 (HAProxy IP)
    
于 2013-11-07T11:15:29.290 回答