SSL使用HAproxy卸载/重定向特定的URL?

时间:2013-10-28 10:14:49

标签: redirect ssl load-balancing haproxy

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

这允许我在SSL中包装登录功能和用户/密码交换,但另外避免加速与加密的连接,并解决某些浏览器中嵌入式内容混合内容警告的一些问题。

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

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

是否可以使用HAproxy做我提议的事情,还是应该寻找其他解决方案?

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

1 个答案:

答案 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)