Установка HAProxy — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
Строка 16: Строка 16:
  
 
Конфигурирование HAProxy выполняется в файле /etc/haproxy/haproxy.cfg. Все основные настройки находятся в 4-х секциях:
 
Конфигурирование HAProxy выполняется в файле /etc/haproxy/haproxy.cfg. Все основные настройки находятся в 4-х секциях:
  '''global.''' Глобальные настройки, распространяемые на все публикации.<br>
+
   
  '''defaults.''' Настройки, применяемые по умолчанию, если они не указаны явно в публикации.<br>
+
* '''global.''' Глобальные настройки, распространяемые на все публикации.<br>
  '''frontend.''' Правила обработки запросов, приходящих на сервер и передачи этих запросов серверам backend. Может быть несколько.<br>
+
* '''defaults.''' Настройки, применяемые по умолчанию, если они не указаны явно в публикации.<br>
  '''backend.''' Настройка конечных серверов, которые обрабатывают запросы и возвращают результаты. Может быть несколько.<br>
+
* '''frontend.''' Правила обработки запросов, приходящих на сервер и передачи этих запросов серверам backend. Может быть несколько.<br>
 +
* '''backend.''' Настройка конечных серверов, которые обрабатывают запросы и возвращают результаты. Может быть несколько.<br>
 
Также есть возможность создать дополнительные секции, например '''userlist.'''
 
Также есть возможность создать дополнительные секции, например '''userlist.'''
  

Версия 16:23, 15 сентября 2022

Установку будем проводить на Debian 11. Если текущая версия устраивает, то просто apt install haproxy. Если требуется последняя, то подключаем репозиторий.


Добавляем ключ репозитория

curl https://haproxy.debian.net/bernat.debian.org.gpg | gpg --dearmor > /usr/share/keyrings/haproxy.debian.net.gpg


Добавляем сам репозиторий

echo deb "[signed-by=/usr/share/keyrings/haproxy.debian.net.gpg]" http://haproxy.debian.net bullseye-backports-2.6 main > /etc/apt/sources.list.d/haproxy.list
apt update


Ставим HAProxy

apt-get install haproxy=2.6.\*


Конфигурирование HAProxy выполняется в файле /etc/haproxy/haproxy.cfg. Все основные настройки находятся в 4-х секциях:

  • global. Глобальные настройки, распространяемые на все публикации.
  • defaults. Настройки, применяемые по умолчанию, если они не указаны явно в публикации.
  • frontend. Правила обработки запросов, приходящих на сервер и передачи этих запросов серверам backend. Может быть несколько.
  • backend. Настройка конечных серверов, которые обрабатывают запросы и возвращают результаты. Может быть несколько.

Также есть возможность создать дополнительные секции, например userlist.


Алгоритмы балансировки нагрузки

  • Roundrobin: каждый сервер используется по очереди в соответствии со своим весом. Это самый плавный и честный алгоритм, когда время обработки серверами остается равномерно распределенным. Этот алгоритм является динамическим, что позволяет регулировать вес сервера на лету.
  • Leastconn: выбирается сервер с наименьшим количеством соединений. Циклический перебор выполняется между серверами с одинаковой нагрузкой. Использование этого алгоритма рекомендуется для длинных сеансов, таких как LDAP, SQL, TSE и т.д., но он не очень подходит для коротких сеансов, таких как HTTP.
  • First: первый сервер с доступными слотами для подключения получает соединение. Серверы выбираются от самого низкого числового идентификатора до самого высокого, который по умолчанию соответствует положению сервера в ферме. Как только сервер достигает значения maxconn, используется следующий сервер.
  • Source: IP-адрес источника хешируется и делится на общий вес запущенных серверов, чтобы определить, какой сервер будет получать запрос. Таким образом, один и тот же IP-адрес клиента будет всегда доставаться одному и тому же серверу, в то время как серверы остаются неизменными.