【问题标题】:HAProxy with SSL (https) and Sticky Session具有 SSL (https) 和粘性会话的 HAProxy
【发布时间】:2012-08-16 10:23:30
【问题描述】:

我需要设置负载均衡器作为亚马逊 ELB 的替代品,因为它们存在连接超时问题。

目前,我正在使用 HAProxy,它可以正常工作。但是,对于想要在 https(端口 443)中连接到后端 apache 服务器和粘性会话的用户,我需要使用 SSL。

配置会是什么样子?听说 HAProxy 在 native 中不支持 SSL,可以使用 stunnel 或 nginx / apache 来处理 SSL 终止。

我希望有人能分享他们的知识和经验。

谢谢。 詹姆斯

【问题讨论】:

    标签: apache ssl nginx haproxy


    【解决方案1】:

    要 http 使用类似的东西。 将 XXX.XXX.XXX.XXX 更改为您的 IP 地址。

    listen  example-cluster XXX.XXX.XXX.XXX:80
            mode    http
            stats   enable
            stats   auth    user:password
            stick store-request src
            stick-table type ip size 200k expire 2m
            balance source
            cookie  JSESSIONID prefix
            option  httplog
            option  httpclose
            option  forwardfor
            option  persist
            option  redispatch
            option  httpchk HEAD    /check.txt      HTTP/1.0
            server  example-webl XXX.XXX.XXX.XXX:80 cookie A check
            server  example-web2 XXX.XXX.XXX.XXX:80 cookie B check
            server  example-web3 XXX.XXX.XXX.XXX:80 cookie C check
            server  example-web4 XXX.XXX.XXX.XXX:80 cookie D check
            server  example-web5 XXX.XXX.XXX.XXX:80 cookie E check
    

    对您的 SSL 使用带有 balance source 的模式 tcp:

    listen  example-cluster-ssl XXX.XXX.XXX.XXX:443
            mode   tcp
            reqadd X-Forwarded-Proto:\ https
            stick  store-request src
            stick-table type ip size 200k expire 2m
            option persist
            option redispatch
            option ssl-hello-chk
            balance source
            server  example-webl XXX.XXX.XXX.XXX:443 check
            server  example-web2 XXX.XXX.XXX.XXX:443 check
            server  example-web3 XXX.XXX.XXX.XXX:443 check
            server  example-web4 XXX.XXX.XXX.XXX:443 check
            server  example-web5 XXX.XXX.XXX.XXX:443 check
    

    另一种方法是将您的 haproxy 升级到 1.5 版,在该版本中支持 ssl 但还不稳定。

    【讨论】:

      【解决方案2】:

      看看 github 上的 Stud 项目,它与 haproxy 结合得非常好,性能非常好,可扩展,而且使用的资源非常少。许多用户现在正在转向它,因为它简单高效。

      【讨论】:

      • 谢谢威利。感谢您的帮助,向我推荐一篇关于 stud + haproxy + ssl + php session affinity(粘性会话)的设置和配置的文章。目前,我正在使用 Stunnel 处理 SSL 端口 443,但我对其他推荐方式开放。
      • 如果你有兴趣,可以看看最新的haproxy开发快照,它在两边都集成了原生SSL支持,这比与互补产品结合起来要容易得多。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 2014-07-16
      • 2016-12-07
      • 2012-09-29
      • 2011-09-23
      • 2012-02-11
      • 2012-05-16
      相关资源
      最近更新 更多