HAProxy with SSL(https)和Sticky Session

时间:2012-08-21 05:00:28

标签: apache ssl nginx haproxy

我需要设置负载均衡器作为Amazon的ELB的替代方案,因为它们在连接超时时出现问题。

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

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

我很感激任何人分享他们的知识和经验。

感谢。 詹姆斯

2 个答案:

答案 0 :(得分:1)

要使用类似的东西。 将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,请使用带有余额源的模式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但尚未稳定。

答案 1 :(得分:0)

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