Для установки haproxy в debian wheezy нужно включить wheezy-backports.
Для этого в файл /etc/apt/sources.list нужно добавить строки:
deb http://mirrors.kernel.org/debian wheezy-backports main contrib deb-src http://mirrors.kernel.org/debian wheezy-backports main contrib
И выполняем
apt-get update
А дальше ставим:
apt-get install haproxy
В репозитариях обычно лежит старая версия, например 1.4, а она не умеет SSL SNI. Поэтому компилируем из исходников:
http://www.pylon-decisionware.com/blog/install-haproxy-source-ubuntu
или в CentOS
http://myvirtualife.net/2013/08/19/how-to-build-a-load-balancer-with-haproxy/
или так:
apt-get install wget libssl-dev libpcre3 libpcre3-dev make gcc # this installs prerequisites wget http://haproxy.1wt.eu/download/1.5/src/devel/haproxy-1.5-dev21.tar.gz # download the package tar xzvf haproxy-1.5-dev21.tar.gz # extracting cd haproxy-1.5-dev21 # enter the extracted directory make TARGET=linux26 USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1 # i compile it with compression and ssl support; use CPU=x86_64 for x64 or CPU=i686 make install # install
Балансировка в зависимости от имени хоста (reverse proxy)
frontend http_proxy bind 192.168.4.99:80 acl is_demo hdr_dom(host) demo.domain.ru acl is_demo2 hdr_dom(host) demo2.domain.ru use_backend cluster1 if is_demo use_backend cluster2 if is_demo2 backend cluster1 server server1 87.250.251.3:80 backend cluster2 server server2 81.19.85.87:80
Перезапустим:
service haproxy restart
домены demo.domain.ru и demo2.domain.ru имеют одинаковые ip
При заходе через браузер на http://demo.domain.ru получаем контент с 87.250.251.3:80
а если урл — http://demo2.domain.ru, то с 81.19.85.87:80
Балансировка в режиме tcp:
frontend https-c-in bind 178.79.xxx.xxx:443 mode tcp default_backend c-https backend c-https balance source mode tcp option ssl-hello-chk server c-web-01 192.168.xxx.xxx:443 check inter 2000 rise 2 fall 5
http://serverfault.com/questions/523998/unable-to-configure-haproxy-with-ssl
Discussion