Установка и настройка HAProxy
HAProxy (High Availability Proxy) — универсальный балансировщик нагрузки с открытым исходным кодом и программное обеспечение прокси-сервера. Его задача — эффективно распределять входящий сетевой трафик между несколькими брокерами для обеспечения высокой доступности, надежности и оптимальной производительности системы.
|
Для корректной работы системы выберите тип балансировки с привязкой пользователя к определенному серверу: balance source и hash-type consistent. Подробнее о типах балансировки. |
В этом разделе описано, как установить и настроить балансировщик нагрузки HAProxy для операционных систем: РЕД ОС, Astra Linux, Debian, Alt Linux и OpenSuse.
РЕД ОС
-
Установите ПО HAProxy с помощью команды:
sudo dnf install haproxy -
Включите службу haproxy и добавьте автозагрузку с помощью команды:
sudo systemctl enable haproxy --now -
Добавьте в конец файла конфигурации
/etc/haproxy/haproxy.cfgнастройку серверов для балансировки.Пример конфигурации для внутреннего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify noneПример конфигурации для внешнего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:10443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:10443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify none -
Проверьте созданный файл конфигурации с помощью команды ниже. Вывод команды не должен содержать ошибок. Предупреждения (warnings) не являются ошибками.
sudo haproxy -f /etc/haproxy/haproxy.cfg -c -
Перезапустите службу с помощью команды:
sudo systemctl restart haproxy -
Разрешите работу в SELinux с помощью команд:
для внутреннего балансировщика
sudo semanage port -m -t http_port_t -p tcp 9090для внешнего балансировщика
sudo semanage port -a -t http_port_t -p tcp 10443 sudo semanage port -m -t http_port_t -p tcp 10443 -
Проверьте доступность СТД «Термит» по URL адресу, указанному при установке брокер серверов.
Astra Linux
Для установки используется последняя доступная в репозитории Astra Linux версия HAProxy. Подробнее о конфигурации можно ознакомиться на официальном сайте Astra Linux.
|
Для корректной работы HAProxy на Astra Linux в режимах высокой или максимальной защищенности может понадобится отключение или дополнительная настройка ненулевых классификационных меток. Подробнее о настройке можно ознакомиться на официальном сайте Astra Linux. |
-
Установите ПО HAProxy с помощью команды:
sudo apt install haproxy -
Включите службу haproxy и добавьте автозагрузку с помощью команды:
sudo systemctl enable haproxy --now -
Добавьте в конец файла конфигурации
/etc/haproxy/haproxy.cfgнастройку серверов для балансировки.Пример конфигурации для внутреннего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify noneПример конфигурации для внешнего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:10443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:10443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify none -
Проверьте созданный файл конфигурации с помощью команды ниже. Вывод команды не должен содержать ошибок. Предупреждения (warnings) не являются ошибками.
sudo haproxy -f /etc/haproxy/haproxy.cfg -c -
Перезапустите службу с помощью команды:
sudo systemctl restart haproxy -
Проверьте доступность СТД «Термит» по URL адресу, указанному при установке брокера.
Debian
-
Установите ПО HAProxy с помощью команды:
sudo systemctl install haproxy -
Включите службу haproxy и добавьте автозагрузку с помощью команды:
sudo systemctl enable haproxy --now -
Добавьте в конец файла конфигурации
/etc/haproxy/haproxy.cfgнастройку серверов для балансировки:Пример конфигурации для внутреннего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify noneПример конфигурации для внешнего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:10443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:10443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify none -
Проверьте файл конфигурации с помощью команды:
sudo haproxy -f /etc/haproxy/haproxy.cfg -c -
Перезапустите службу с помощью команды:
sudo systemctl restart haproxy -
Проверьте доступность СТД «Термит» по URL адресу, указанному при установке брокера.
ALT Linux
-
Установите ПО HAProxy с помощью команды:
sudo apt-get install haproxy -
Включите службу haproxy и добавьте автозагрузку с помощью команды:
sudo systemctl enable haproxy --now -
Добавьте в конец файла конфигурации
/etc/haproxy/haproxy.cfgнастройку серверов для балансировки.Пример конфигурации для внутреннего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify noneПример конфигурации для внешнего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:10443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:10443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify none -
Проверьте созданный файл конфигурации с помощью команды ниже. Вывод команды не должен содержать ошибок. Предупреждения (warnings) не являются ошибками.
sudo haproxy -f /etc/haproxy/haproxy.cfg -c -
Перезапустите службу с помощью команды:
sudo systemctl restart haproxy -
Проверьте доступность СТД «Термит» по URL адресу, указанному при установке брокера.
OpenSUSE
-
Установите ПО HAProxy с помощью команды:
sudo zypper install haproxy -
Запустите службу haproxy с помощью команды:
sudo systemctl enable haproxy --now -
Проверьте статус службы haproxy с помощью команды:
sudo systemctl status haproxyСтатус должен быть «Active».
-
Добавьте в конец файла конфигурации
/etc/haproxy/haproxy.cfgнастройку серверов для балансировки.Пример конфигурации для внутреннего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify noneПример конфигурации для внешнего балансировщика
В примере приведен файл конфигурации с типом балансировки Source IP Hash.
frontend termit mode tcp bind :80 default_backend termit_servers backend termit_servers option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check check-ssl verify none frontend termit_https mode tcp bind :443 default_backend termit_servers_https backend termit_servers_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance source hash-type consistent server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:10443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:10443 check check-ssl verify none frontend termit_8443_https mode tcp bind :8443 default_backend termit_servers_8443_https backend termit_servers_8443_https option httpchk http-check connect port 9090 ssl http-check send meth GET uri /_/broker-health mode tcp balance leastconn server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check check-ssl verify none server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check check-ssl verify none -
Проверьте созданный файл конфигурации с помощью команды ниже. Вывод команды не должен содержать ошибок. Предупреждения (warnings) не являются ошибками.
sudo haproxy -f /etc/haproxy/haproxy.cfg -c -
Перезапустите службу с помощью команды:
sudo systemctl restart haproxy -
Проверьте статус службы с помощью команды:
sudo systemctl status haproxyСтатус должен быть «Active».
-
Проверьте доступность СТД «Термит» по URL адресу, указанному при установке брокера.