Параметры конфиг файла haproxy

/etc/haproxy/haproxy.cfg

###### Описание секции global #######

global

# систем­ный лог сер­ве­ра, в кото­рый нуж­но отправ­лять пре­ду­пре­жде­ния и извещения

log 127.0.0.1 local2 notice

# Запуск HAProxy в chroot-окружении

chroot /var/lib/haproxy

# поль­зо­ва­тель  и груп­па, от кото­рых рабо­та­ет процесс

user haproxy

group haproxy

# Запуск HAProxy как сервиса

daemon

# коли­че­ство одно­вре­мен­ных под­клю­че­ний на внеш­нем интерфейсе(максимальное чис­ло одно­вре­мен­ных под­клю­че­ний для каж­до­го процесса)

maxconn 10000

# nbproc «number» (nbproc 2) — зада­ет коли­че­ство про­цес­сов. По умол­ча­нию толь­ко один про­цесс будет создан

# Default SSL material locations

ca-base /etc/ssl/certs

crt-base /etc/ssl/private

# Default ciphers to use on SSL-enabled listening sockets.

# For more information, see ciphers(1SSL). This list is from:

https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/

ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

ssl-default-bind-options no-sslv3

 

####### Описание секции defaults #######

defaults

# Вклю­ча­ет в жур­на­ли­ро­ва­ние инфор­ма­ции о трафике

log     global

# Режим рабо­ты HAProxy, в http режи­ме про­ис­хо­дит ана­лиз Layer 7 трафика

mode    http

# Добав­ля­ет в лог HTTP запро­сы, состо­я­ние сеан­са и таймеры

option  httplog

# Отклю­ча­ет логи­ро­ва­ние пустых соединений

option  dontlognull

# коли­че­ство повтор­ных попы­ток под­клю­че­ния к backend-сер­ве­ру после сбоя подключения.

retries 3

# пере­рас­пре­де­ле­ние сес­сии в слу­чае сбо­ев соеди­не­ния c каким-либо backend-сервером

option redispatch

# коли­че­ство одно­вре­мен­ных под­клю­че­ний на внеш­нем интерфейсе(максимальное чис­ло одно­вре­мен­ных под­клю­че­ний для каж­до­го процесса)

maxconn 10000

# авто­ма­ти­че­ски закры­вать соеди­не­ния после завер­ше­ния пере­да­чи данных

option httpclose

# Вклю­че­ние X-Forwarded-For для пере­да­чи IP-адре­са кли­ен­та backend-серверу

option forwardfor

# мак­си­маль­ное вре­мя ожи­да­ния для успеш­но­го под­клю­че­ния к серверу

timeout connect 5000

# когда кли­ент или сер­вер долж­ны под­твер­дить при­ём дан­ных или отпра­вить дан­ные в TCP-про­цес­се. Реко­мен­ду­ет­ся уста­но­вить для них оди­на­ко­вое значение

timeout client  50000

timeout server  50000

# Вклю­че­ние  стра­ни­цу статистики

stats enable

# URL, по кото­ро­му доступ­на ста­ти­сти­ка Haproxy

stats uri /haproxy

# Заго­ло­вок стра­нич­ки статистики

stats realm Haproxy\ Statistics

# HTTP-базо­вая авто­ри­за­ция логин/пароль для про­смот­ра ста­ти­сти­ки HAProxy

stats auth admin:123456

# Авто­об­нов­ле­ние ста­ти­ки каж­дые 30 секунд

stats refresh 30s

# Скры­вать вер­сию HAProxy в статистике

stats hide-version

# Отоб­ра­же­ние в ста­ти­сти­ке допол­ни­тель­ной инфор­ма­цию о параметрах

stats show-legends

stats show-node

# Опре­де­ле­ние стра­ниц ошибок

errorfile 400 /etc/haproxy/errors/400.http

errorfile 403 /etc/haproxy/errors/403.http

errorfile 408 /etc/haproxy/errors/408.http

errorfile 500 /etc/haproxy/errors/500.http

errorfile 502 /etc/haproxy/errors/502.http

errorfile 503 /etc/haproxy/errors/503.http

errorfile 504 /etc/haproxy/errors/504.http

 

####### Описание секции frontend #######

# Имя Frontend-сервера

frontend WEBLoadBalancer-HTTP

# Режим рабо­ты фронтенда

mode http

# IP-адрес и порт, на кото­ром  будет слу­шать запро­сы HApoxy

bind 10.10.1.43:80

# Имя  Backend-сер­ве­ра, на кото­рый необ­хо­ди­мо направ­лять запросы

default_backend webcluster

 

####### Описание секции backend #######

# Имя Backend-сервера

backend webcluster

# Режим рабо­ты backend-сервера

mode http

# Алго­ритм балан­си­ров­ки запросов

# roundrobin/leastconn/static-rr/uri/source/url_param

balance roundrobin

option httpclose

option forwardfor

# Про­вер­ка состояния/доступности backend-серверов

option httpchk HEAD /test.php HTTP/1.0

например,если нуж­но мони­то­рить доступ­ность вир­ту­аль­но­го хоста

option httpchk HEAD / HTTP/1.0\r\nHost:kamaok.org.us

 

# сер­ве­ра бэкенда

# син­так­сис  server <name> <address>[:port] [param*]

# name - будет появ­лять­ся в логах и предупреждениях.

# check - про­вер­ку состо­я­ния сер­ве­ра через проверку,определенную пара­мет­ром httpchk

# cookie - встав­ка име­ни сервера(name) в зна­че­ние cookie

server app01 192.168.10.54:80 check

server app02 192.168.10.55:80 check

server app03 192.168.10.56:80 check

http-request add-header X-Forwarded-Proto https if { ssl_fc }