Настройка балансировки нагрузки

Балансировка нагрузки — это технология, которая позволяет распределять входящий трафик между несколькими используемыми веб-серверами, тем самым не допуская перегрузки одного из них.

Балансировка подключается для отдельного домена. Распределение трафика возможно при указании минимум двух целевых серверов.

Для настройки и управления балансировкой перейдите в раздел Домены и выберите вкладку IP и балансировка.

 

Активная балансировка проверяет доступность целевых серверов, чтобы убедиться в их работоспособности. Для этого модуль проверки доступности (health checker) периодически отправляет HTTP или HTTPS запрос к серверу. Если сервер не ответил на несколько проверок подряд или ответил с некорректным кодом, он считается недоступным, и трафик направляется на другие адреса.

Протокол и URL для проверки доступности, допустимые коды ответа, время ожидания и интервал между проверками можно настроить в личном кабинете.

Пока не включен модуль проверки доступности (health checker), балансировка работает в ручном режиме. При ручной балансировке трафик равномерно распределяется между целевыми адресами, вне зависимости от их доступности.

Интерфейс личного кабинета, вкладка Балансировка нагрузки. Переключатель Активная балансировка выключен
Балансировка в ручном режиме

При первом включении активной балансировки понадобится настроить проверку доступности:

  1. Указать URL-адрес, на который будет отправляться запрос для проверки
  2. Выбрать протокол запроса
  3. Указать коды ответов, которые будут означать нормальную работу сервера
  4. Указать время ожидания — сколько миллисекунд модуль проверки будет ждать ответа
  5. Задать максимальное количество ошибок, после которого на сервер перестанет приходить трафик
  6. Задать количество успешных ответов, после которого сервер считается доступным
  7. Задать интервал между проверками — изменить частоту опроса целевых серверов, например, чтобы ограничить нагрузку на них во время проверок доступности

Для проверки доступности нужно разрешить входящие HTTP/HTTPS-соединения с IP-адреса 190.115.30.44

Подробнее о том, как настроить фаервол на целевом сервере, читайте в инструкции Подключение и настройка

После сохранения настроек включится активная балансировка.

l7-balancingRU2-2.png
Включена активная балансировка

К основной группе, в которую уже внесены текущие целевые серверы, добавится резервная. Резервная группа будет участвовать в балансировке только тогда, когда в основной группе не осталось активных серверов — по такому адресу можно установить страницу-заглушку с сообщением о неполадках.

Статус группы позволяет узнать, какая группа сейчас используется:

  • Используется — трафик в данный момент направлен на доступные серверы этой группы
  • Недоступна — в группе нет ни одного доступного целевого сервера
  • В резерве (только для резервной группы) — в группе есть доступные сервера. Трафик будет направлен на них, если основная группа окажется недоступна

Если все серверы в обеих группах оказываются недоступны, трафик равномерно распределяется между серверами основной группы

Статус сервера показывает, прошел ли проверку доступности конкретный сервер:

  • Проверяется — идет проверка доступности
  • Доступен — веб-сервер успешно прошел проверку и может участвовать в балансировке
  • Недоступен — сервер не прошел проверку (не ответил на запрос в установленное время, либо ответил не тем кодом)
  • Отключен — сервер отключен пользователем и не участвует в балансировке

Лог активной балансировки

Когда целевой сервер меняет свой статус, регистрируется событие балансировки. Вместе с новым статусом сервера фиксируется время и HTTP-код ответа на последнюю проверку доступности.

Интерфейс личного кабинета, вкладка Балансировка нагрузки. Переключатель Активная балансировка включен. Таблица События активной балансировки

По умолчанию показываются события за последние 30 дней — чтобы посмотреть более старые логи, выберите нужный период в столбце Дата и время.

Данные о событиях балансировки собираются начиная с августа 2024

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

 

Альтернативный механизм балансировки. Он не предполагает проверку доступности с помощью специальных запросов, решение о доступности или недоступности сервера принимается на основе параметров соединения на уровне L3-4. 

Пассивная балансировка позволяет настроить распределение нагрузки на целевые серверы в зависимости от их мощности и производительности.

l7-balancingRU4.png
Настройки пассивной балансировки

Для настройки укажите следующие параметры:

  • Вес — доля трафика, который будет балансироваться на целевой сервер. Каждому серверу присваивается весовой коэффициент. Это помогает распределять нагрузку более гибко: серверы с большим весом обрабатывают больше запросов.
  • Макс. ошибок соединения — при превышении максимального количества ошибок подряд целевой сервер будет считаться недоступным.
  • Методы балансировки — алгоритмы балансировки нагрузки, определяющие оптимальные серверы для входящих клиентских запросов.

Доступные методы:

  • Round Robin — алгоритм кругового обслуживания. Каждый запрос перенаправляется на сервер в цикличном порядке, и обычно какие-либо другие параметры клиента не учитываются
  • Hash — сервер обрабатывающий запрос. Выбирается из статической таблицы по IP-адресу отправителя и получателя.
  • Rendezvous Hash — независимо определяет порядок между серверами для каждого запроса.

В любое время вы можете отключить какой-либо сервер, чтобы он не участвовал в балансировке.

 

Q: Что будет, если все целевые серверы из всех групп станут недоступны?
A: Трафик будет перенаправлен на активные серверы из основной группы. Если и в основной группе все серверы недоступны, трафик с остальных групп все равно будет перенаправлен на все серверы из основной.

Q: По каким целевым серверам собирается статистика по трафику и формируется отчет?
A: Только по активным.