HAProxy

Установка

Прежде всего, нужно установить плагин HAProxy (os-haproxy) из «Система-> Прошивка-> Плагины»

../../_images/os-haproxy1.png

Первый шаг: настройка серверов backend

../../_images/os-haproxy2.png

На странице «Серверы» нажмите +, чтобы открыть диалоговое окно для создания нового сервера. Сервер состоит из имени, IP и порта. Создайте запись для каждого сервера, на который вы хотите загрузить баланс.

../../_images/os-haproxy3.png

Для HTTP Backend настройте следующим образом:

Имя

Имя этого сервера

Описание

Описание для этого сервера

Полностью определенное имя домена или IP-адрес

Введите ip-адресс для этого сервера

Порт

Порт сервера

SSL

Оставить значение по умолчанию (отключено)

Проверить SSL-сертификат

Оставить значение по умолчанию (отмечено)

Проверить центр сертификации SSL

Оставить значение по умолчанию (пустое)

Второй шаг: настройка backend

Теперь, когда у нас есть серверные службы, мы можем построить backend, объединив их с группами серверов, которые будут обслуживать один и тот же сервис. Например, если вы размещаете веб-сервис и хотите масштабировать горизонтально, каждый сервер в кластере будет «сервером», и они будут объединены с так называемым «Backend», так что HAProxy может балансировать между ними.

Чтобы создать новый backend, нажмите кнопку + .

../../_images/os-haproxy4.png

И заполните форму:

../../_images/os-haproxy5.png

Примечание

В поле «Алгоритм балансировки» важно знать, сколько веб-приложений зависит от состояния. Например, если веб-приложение хранит данные сеанса на локальном диске, могут возникнуть проблемы при использовании алгоритма Round Robin. В таком случае, запрос клиента всегда должен быть отправлен в тот же backend сервера. Например по умолчанию в PHP хранит данные сессии в файлах, в то время как Ruby on Rails по умолчанию сохраняет информацию о сеансе в файле cookie. Пожалуйста, ознакомьтесь с документацией по веб-инфраструктуре для получения информации о том, как это обрабатывается. Если общего хранилища нет, следует также рассмотреть возможность записи файлов как проблемные.

Включено

Включить backend

имя

Введите имя для backend

Описание

Введите необязательное описание

Режим

Выберите режим HTTP, поскольку это HTTP-сервер

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

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

Серверы

Выберите ранее настроенные серверы

Третий шаг: Списки контроля доступа

На этом этапе должен быть создан список контроля доступа, в дальнейшем ACL, который позже будет использоваться для определения того, какой трафик от внешнего интерфейса принадлежит к бэкэнду.

Чтобы создать новый ACL, нажмите кнопку + :

../../_images/os-haproxy6.png

В открывшемся диалоговом окне появится следующая форма:

../../_images/os-haproxy7.png

имя

Выберите имя для этого ACL

Описание

Можно оставить его пустым или введите свою информацию

Выражение

Выберите «Host contains»

Инвертировать состояние

Не включать

Значение

Введите имя хоста

Нажмите «Сохранить изменения».

Четвертый шаг: настройка действия

Как и было обещано на предыдущем этапе, будут использоваться списки управления доступом. Действие связывает несколько списков управления доступом с серверной частью. Действие создается с помощью кнопки+.

../../_images/os-haproxy8.png

Откроется диалоговое окно, и мы можем заполнить его следующим образом:

../../_images/os-haproxy9.png

Примечание

Вы можете сопоставить несколько имен хостов с одним и тем же Backend, добавив несколько ACL и выбрав логический оператор «OR».

имя

Выберите имя для этого действия

Описание

Вы можете добавить необязательное описание

Тип теста

По умолчанию («IF»)

Выбрать списки контроля доступа

Выберите ранее созданное ACL

Логический оператор

По умолчанию («AND»)

Выбрать действие

Выберите «Use Backend»

Использовать сервер

Сохранить значение по умолчанию («none»)

Пятый шаг. Настройте интерфейс

Теперь почти все сделано. Единственное, что нужно настроить для HAProxy , это Frontend. Frontend - это группа связанных портов, которые используются для входящих соединений. Из этого Frontend нам нужно знать, в какой бэкэнд будет направлен запрос. Для этого требуется предварительно настроенное действие.

Чтобы создать новый Frontend, нажмите кнопку + :

../../_images/os-haproxy10.png

Откроется окно в котором можно настроить интерфейс:

../../_images/os-haproxy11.png

Предупреждение

Если вы настроите порт, который уже используется, тест конфигурации будет успешным, но запуск HAProxy завершится неудачно. Убедитесь, что используемый порт свободен.

Общие настройки:

Включен

Включить этот Frontend

имя

Использовать любое имя

Описание

Вы можете оставить его пустым

Прослушать адрес

Настройте адреса прослушивания этого фронтэнда, например 127.0.0.1:81

Тип

Выберите HTTP / HTTPS

Серверный компонент по умолчанию

По умолчанию «none»

Расширенные настройки:

Включите X-Forwarded-For-header, чтобы бэкэнд узнал реальный IP-адрес клиента.

Действия (списки контроля доступа):

Выберите уже настроенные списки

Все остальные параметры:

Сохранять все остальные параметры по умолчанию

Шестой шаг: включить и запустить

Это последний шаг - на вкладке «Основыне настройки» мы включим службу.

../../_images/os-haproxy12.png

Для этого необходимо установить флажок «Включить HAProxy ».

Далее жмем применить. Если вы все сделали верно, служба должна запуститься.