EnterpriseApps/Haproxy: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «{{stub}} {|class="wikitable" style="float:right; margin-left:2em" !colspan="2"|HAProxy |- |colspan="2"|64px|center |- |'''Появился в: |''' 2001<br> |- |'''Оф. сайт''': |[https://www.haproxy.org/ haproxy.org] |- |'''Репозиторий ALT Linux''' |[https://packages.altlinux.org/ru/p10/srpms/haproxy/ haproxy] |- |'''Лицензия''': | GNU GPL v2 |} '''HAProxy''' — серверн...»)
 
 
(не показано 6 промежуточных версий этого же участника)
Строка 25: Строка 25:
  # systemctl enable --now haproxy.service
  # systemctl enable --now haproxy.service


=Каталоги и файлы Tomcat=
=Каталоги и файлы Haproxy=
*{{path|/etc/haproxy/conf.d}} - каталог с настройками (по-умолчанию пустой)  
*{{path|/etc/haproxy/conf.d}} - каталог с настройками (по-умолчанию пустой)  
*{{path|/etc/haproxy/haproxy.cfg}} - конфигурационный файл
*{{path|/etc/haproxy/haproxy.cfg}} - конфигурационный файл
Строка 32: Строка 32:


=Настройка=
=Настройка=
Настройка HAProxy — довольно простой процесс. По сути, всё, что вам нужно сделать, это сообщить HAProxy, какие соединения он должен прослушивать и куда следует их ретранслировать.


Это делается путем создания файла конфигурации {{path|/etc/haproxy/haproxy.cfg}} с определяющими настройками.
Добавьте в конец файла два раздела - {{path|frontend %name%}} и {{path|backend %name%}} - %name% - замените на свои имена.
Например на {{path|http_front}} и {{path|http_back}}.
frontend http_front
    bind *:80
    stats uri /haproxy?stats
    default_backend http_back
backend http_back
    balance roundrobin
    server server_name1 private_ip1:80 check
    server server_name2 private_ip2:80 check
Данный параметр делает следующее:
*создает фронтенд {{path|http_front}} и бэкенд {{path|http_back}}
*на данном порту будет страница статистики с адресом {{path|/haproxy?stats}}
*при входе на адрес с портом :80 выбирается бэкенд {{path|http_back}}
**у http_back тип баланса: {{path|Roundrobin}} (какие есть, см. ниже)
**описываются два сервера с их именами и адресами
*По адресу IP/haproxy?stats будет доступна статистика (в открытом виде)
При переходе на адрес сервера с портом 80 пользователь будет автоматически перенаправлен на один из указанных серверов в бекенде http_back.
===Типы баланса===
*'''Roundrobin''': каждый сервер используется по очереди в соответствии со своим весом. Это самый плавный и честный алгоритм, когда время обработки серверами остается равномерно распределенным. Этот алгоритм является динамическим, что позволяет регулировать вес сервера на лету.
*'''Leastconn''': выбирается сервер с наименьшим количеством соединений. Циклический перебор выполняется между серверами с одинаковой нагрузкой. Использование этого алгоритма рекомендуется для длинных сеансов, таких как LDAP, SQL, TSE и т. д., но он не очень подходит для коротких сеансов, таких как HTTP.
*'''First''': первый сервер с доступными слотами для подключения получает соединение. Серверы выбираются от самого низкого числового идентификатора до самого высокого, который по умолчанию соответствует положению сервера в ферме. Как только сервер достигает значения maxconn, используется следующий сервер.
*'''Source''': IP-адрес источника хешируется и делится на общий вес запущенных серверов, чтобы определить, какой сервер будет получать запрос. Таким образом, один и тот же IP-адрес клиента будет всегда доставаться одному и тому же серверу, в то время как серверы остаются неизменными.
===Защита страницы статистики с помощью пароля===
Чтобы скрыть страницу статистики из публичного доступа, можно установить пароль. Делается это добавлением следующего кода в конфигурационный файл:
  listen stats
    bind *:8181
    stats enable
    stats uri /
    stats realm Haproxy\ Statistics
    stats auth username:password
Мы ей назначили собственный номер порта (:8181) и логин-пароль. Замените username и password на что-нибудь безопасное.
[[Категория:EnterpriseApps]]
[[Категория:EnterpriseApps]]

Текущая версия от 11:09, 17 ноября 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
HAProxy
Altenter-menu-Haproxy.png
Появился в: 2001
Оф. сайт: haproxy.org
Репозиторий ALT Linux haproxy
Лицензия: GNU GPL v2

HAProxy — серверное программное обеспечение для обеспечения высокой доступности и балансировки нагрузки для TCP- и HTTP-приложений посредством распределения входящих запросов на несколько обслуживающих серверов.

Установка

$ su -
# apt-get install haproxy
# systemctl enable --now haproxy.service

Каталоги и файлы Haproxy

  • /etc/haproxy/conf.d - каталог с настройками (по-умолчанию пустой)
  • /etc/haproxy/haproxy.cfg - конфигурационный файл
  • /etc/logrotate.d/haproxy
  • /etc/sysconfig/haproxy - настройки службы haproxy

Настройка

Настройка HAProxy — довольно простой процесс. По сути, всё, что вам нужно сделать, это сообщить HAProxy, какие соединения он должен прослушивать и куда следует их ретранслировать.

Это делается путем создания файла конфигурации /etc/haproxy/haproxy.cfg с определяющими настройками.

Добавьте в конец файла два раздела - frontend %name% и backend %name% - %name% - замените на свои имена.

Например на http_front и http_back.

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

Данный параметр делает следующее:

  • создает фронтенд http_front и бэкенд http_back
  • на данном порту будет страница статистики с адресом /haproxy?stats
  • при входе на адрес с портом :80 выбирается бэкенд http_back
    • у http_back тип баланса: Roundrobin (какие есть, см. ниже)
    • описываются два сервера с их именами и адресами
  • По адресу IP/haproxy?stats будет доступна статистика (в открытом виде)

При переходе на адрес сервера с портом 80 пользователь будет автоматически перенаправлен на один из указанных серверов в бекенде http_back.

Типы баланса

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

Защита страницы статистики с помощью пароля

Чтобы скрыть страницу статистики из публичного доступа, можно установить пароль. Делается это добавлением следующего кода в конфигурационный файл:

 listen stats
    bind *:8181
    stats enable
    stats uri /
    stats realm Haproxy\ Statistics
    stats auth username:password

Мы ей назначили собственный номер порта (:8181) и логин-пароль. Замените username и password на что-нибудь безопасное.