HAProxy
Установка
Прежде всего, нужно установить плагин HAProxy (os-haproxy) из «Система-> Прошивка-> Плагины»
Первый шаг: настройка серверов backend
На странице «Серверы» нажмите +, чтобы открыть диалоговое окно для создания нового сервера. Сервер состоит из имени, IP и порта. Создайте запись для каждого сервера, на который вы хотите загрузить баланс.
Для HTTP Backend настройте следующим образом:
Имя |
Имя этого сервера |
Описание |
Описание для этого сервера |
Полностью определенное имя домена или IP-адрес |
Введите ip-адресс для этого сервера |
Порт |
Порт сервера |
SSL |
Оставить значение по умолчанию (отключено) |
Проверить SSL-сертификат |
Оставить значение по умолчанию (отмечено) |
Проверить центр сертификации SSL |
Оставить значение по умолчанию (пустое) |
Второй шаг: настройка backend
Теперь, когда у нас есть серверные службы, мы можем построить backend, объединив их с группами серверов, которые будут обслуживать один и тот же сервис. Например, если вы размещаете веб-сервис и хотите масштабировать горизонтально, каждый сервер в кластере будет «сервером», и они будут объединены с так называемым «Backend», так что HAProxy может балансировать между ними.
Чтобы создать новый backend, нажмите кнопку + .
И заполните форму:
Примечание
В поле «Алгоритм балансировки» важно знать, сколько веб-приложений зависит от состояния. Например, если веб-приложение хранит данные сеанса на локальном диске, могут возникнуть проблемы при использовании алгоритма Round Robin. В таком случае, запрос клиента всегда должен быть отправлен в тот же backend сервера. Например по умолчанию в PHP хранит данные сессии в файлах, в то время как Ruby on Rails по умолчанию сохраняет информацию о сеансе в файле cookie. Пожалуйста, ознакомьтесь с документацией по веб-инфраструктуре для получения информации о том, как это обрабатывается. Если общего хранилища нет, следует также рассмотреть возможность записи файлов как проблемные.
Включено |
Включить backend |
имя |
Введите имя для backend |
Описание |
Введите необязательное описание |
Режим |
Выберите режим HTTP, поскольку это HTTP-сервер |
Алгоритм балансировки |
Выберите алгоритм балансировки нагрузки |
Серверы |
Выберите ранее настроенные серверы |
Третий шаг: Списки контроля доступа
На этом этапе должен быть создан список контроля доступа, в дальнейшем ACL, который позже будет использоваться для определения того, какой трафик от внешнего интерфейса принадлежит к бэкэнду.
Чтобы создать новый ACL, нажмите кнопку + :
В открывшемся диалоговом окне появится следующая форма:
имя |
Выберите имя для этого ACL |
Описание |
Можно оставить его пустым или введите свою информацию |
Выражение |
Выберите «Host contains» |
Инвертировать состояние |
Не включать |
Значение |
Введите имя хоста |
Нажмите «Сохранить изменения».
Четвертый шаг: настройка действия
Как и было обещано на предыдущем этапе, будут использоваться списки управления доступом. Действие связывает несколько списков управления доступом с серверной частью. Действие создается с помощью кнопки+.
Откроется диалоговое окно, и мы можем заполнить его следующим образом:
Примечание
Вы можете сопоставить несколько имен хостов с одним и тем же Backend, добавив несколько ACL и выбрав логический оператор «OR».
имя |
Выберите имя для этого действия |
Описание |
Вы можете добавить необязательное описание |
Тип теста |
По умолчанию («IF») |
Выбрать списки контроля доступа |
Выберите ранее созданное ACL |
Логический оператор |
По умолчанию («AND») |
Выбрать действие |
Выберите «Use Backend» |
Использовать сервер |
Сохранить значение по умолчанию («none») |
Пятый шаг. Настройте интерфейс
Теперь почти все сделано. Единственное, что нужно настроить для HAProxy , это Frontend. Frontend - это группа связанных портов, которые используются для входящих соединений. Из этого Frontend нам нужно знать, в какой бэкэнд будет направлен запрос. Для этого требуется предварительно настроенное действие.
Чтобы создать новый Frontend, нажмите кнопку + :
Откроется окно в котором можно настроить интерфейс:
Предупреждение
Если вы настроите порт, который уже используется, тест конфигурации будет успешным, но запуск HAProxy завершится неудачно. Убедитесь, что используемый порт свободен.
Общие настройки:
Включен |
Включить этот Frontend |
имя |
Использовать любое имя |
Описание |
Вы можете оставить его пустым |
Прослушать адрес |
Настройте адреса прослушивания этого фронтэнда, например 127.0.0.1:81 |
Тип |
Выберите HTTP / HTTPS |
Серверный компонент по умолчанию |
По умолчанию «none» |
Расширенные настройки:
Включите X-Forwarded-For-header, чтобы бэкэнд узнал реальный IP-адрес клиента.
Действия (списки контроля доступа):
Выберите уже настроенные списки
Все остальные параметры:
Сохранять все остальные параметры по умолчанию
Шестой шаг: включить и запустить
Это последний шаг - на вкладке «Основыне настройки» мы включим службу.
Для этого необходимо установить флажок «Включить HAProxy ».
Далее жмем применить. Если вы все сделали верно, служба должна запуститься.