我需要设置负载均衡器作为亚马逊 ELB 的替代品,因为它们在连接超时方面存在问题。
目前,我正在使用 HAProxy,它工作正常。但是,对于想要在 https(端口 443)中连接到后端 apache 服务器和粘性会话的用户,我需要使用 SSL。
配置会是什么样子?我听说 HAProxy 在本机中不支持 SSL,可以使用 stunnel 或 nginx / apache 来处理 SSL 终止。
我会感谢任何人分享他们的知识和经验。
谢谢。詹姆士
要 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 但还不稳定。
看看 github 上的 Stud 项目,它与 haproxy 结合得非常好,性能非常好,可扩展,而且使用的资源非常少。许多用户现在正在切换到它,因为它简单高效。