Haproxy

Материал из Belgorod Linux User Group - Белгород

Перейти к: навигация, поиск

HAProxy - HighAvailability tcp Proxy

Web proxy

haproxy.cfg

описываем фронтэнд:

frontend www
 bind 0.0.0.0:80
 mode http
 ....

описываем правила по которым дальше будут фильтроваться бекэнды, пример - определение по url, потом по целому имени (dom) и по началу имени (beg)

 acl is_hastat         url_reg ^\/thisishastat/.*
 acl is_default        hdr_dom(host) -i mysite.ru
 acl is_dev            hdr_beg(host) -i dev.mysite.

бекенд по умолчанию

 default_backend default

затем условия соответствия фильтрам (какой acl на какой бэкенд должен пойти)

 use_backend default         if is_default
 use_backend dev             if is_dev

После чего в conf.d описываем сами бекенды, например dev.cfg

backend dev
 mode http
 balance source
 appsession JSESSIONID len 52 timeout 24h
 option redispatch
 option httpchk HEAD /index.htm HTTP/1.0
 http-check disable-on-404
 default-server error-limit 3 on-error mark-down
 server dev-web dev-web:80 check observe layer7

и так для каждого бекэнда

TCP proxy

в conf.d пример для прямого форварда TCP порта:

listen myservice 0.0.0.0:6789
 mode tcp
 maxconn 60000
 balance leastconn
 option contstats
 option tcpka
 default-server error-limit 5 on-error mark-down
 server app app:5678
Личные инструменты