Балансировка нагрузки — это технология, которая позволяет распределять входящий трафик между несколькими используемыми веб-серверами, тем самым не допуская перегрузки одного из них.
Балансировка подключается для отдельного домена. Распределение трафика возможно при указании минимум двух целевых серверов.
Для настройки и управления балансировкой перейдите в раздел Домены и выберите вкладку IP и балансировка.
Активная балансировка
Активная балансировка проверяет доступность целевых серверов, чтобы убедиться в их работоспособности. Для этого модуль проверки доступности (health checker) периодически отправляет HTTP или HTTPS запрос к серверу. Если сервер не ответил на несколько проверок подряд или ответил с некорректным кодом, он считается недоступным, и трафик направляется на другие адреса.
Протокол и URL для проверки доступности, допустимые коды ответа, время ожидания и интервал между проверками можно настроить в личном кабинете.
Пока не включен модуль проверки доступности (health checker), балансировка работает в ручном режиме. При ручной балансировке трафик равномерно распределяется между целевыми адресами, вне зависимости от их доступности.
При первом включении активной балансировки понадобится настроить проверку доступности:
- Указать URL-адрес, на который будет отправляться запрос для проверки
- Выбрать протокол запроса
- Указать коды ответов, которые будут означать нормальную работу сервера
- Указать время ожидания — сколько миллисекунд модуль проверки будет ждать ответа
- Задать максимальное количество ошибок, после которого на сервер перестанет приходить трафик
- Задать количество успешных ответов, после которого сервер считается доступным
- Задать интервал между проверками — изменить частоту опроса целевых серверов, например, чтобы ограничить нагрузку на них во время проверок доступности
Для проверки доступности нужно разрешить входящие HTTP/HTTPS-соединения с IP-адреса 190.115.30.44
Подробнее о том, как настроить фаервол на целевом сервере, читайте в инструкции Подключение и настройка
После сохранения настроек включится активная балансировка.
К основной группе, в которую уже внесены текущие целевые серверы, добавится резервная. Резервная группа будет участвовать в балансировке только тогда, когда в основной группе не осталось активных серверов — по такому адресу можно установить страницу-заглушку с сообщением о неполадках.
Статус группы позволяет узнать, какая группа сейчас используется:
- Используется — трафик в данный момент направлен на доступные серверы этой группы
- Недоступна — в группе нет ни одного доступного целевого сервера
- В резерве (только для резервной группы) — в группе есть доступные сервера. Трафик будет направлен на них, если основная группа окажется недоступна
Если все серверы в обеих группах оказываются недоступны, трафик равномерно распределяется между серверами основной группы
Статус сервера показывает, прошел ли проверку доступности конкретный сервер:
- Проверяется — идет проверка доступности
- Доступен — веб-сервер успешно прошел проверку и может участвовать в балансировке
- Недоступен — сервер не прошел проверку (не ответил на запрос в установленное время, либо ответил не тем кодом)
- Отключен — сервер отключен пользователем и не участвует в балансировке
Лог активной балансировки
Когда целевой сервер меняет свой статус, регистрируется событие балансировки. Вместе с новым статусом сервера фиксируется время и HTTP-код ответа на последнюю проверку доступности.
По умолчанию показываются события за последние 30 дней — чтобы посмотреть более старые логи, выберите нужный период в столбце Дата и время.
Данные о событиях балансировки собираются начиная с августа 2024
Если серверы часто меняют статус даже во время штатной работы вашего ресурса, стоит изменить настройки проверки доступности: увеличить допустимое время ожидания, увеличить максимально допустимое количество неудачных проверок подряд.
Пассивная балансировка
Альтернативный механизм балансировки. Он не предполагает проверку доступности с помощью специальных запросов, решение о доступности или недоступности сервера принимается на основе параметров соединения на уровне L3-4.
Пассивная балансировка позволяет настроить распределение нагрузки на целевые серверы в зависимости от их мощности и производительности.
Для настройки укажите следующие параметры:
- Вес — доля трафика, который будет балансироваться на целевой сервер. Каждому серверу присваивается весовой коэффициент. Это помогает распределять нагрузку более гибко: серверы с большим весом обрабатывают больше запросов.
- Макс. ошибок соединения — при превышении максимального количества ошибок подряд целевой сервер будет считаться недоступным.
- Методы балансировки — алгоритмы балансировки нагрузки, определяющие оптимальные серверы для входящих клиентских запросов.
Доступные методы:
- Round Robin — алгоритм кругового обслуживания. Каждый запрос перенаправляется на сервер в цикличном порядке, и обычно какие-либо другие параметры клиента не учитываются
- Hash — сервер обрабатывающий запрос. Выбирается из статической таблицы по IP-адресу отправителя и получателя.
- Rendezvous Hash — независимо определяет порядок между серверами для каждого запроса.
В любое время вы можете отключить какой-либо сервер, чтобы он не участвовал в балансировке.
FAQ
Q: Что будет, если все целевые серверы из всех групп станут недоступны?
A: Трафик будет перенаправлен на активные серверы из основной группы. Если и в основной группе все серверы недоступны, трафик с остальных групп все равно будет перенаправлен на все серверы из основной.
Q: По каким целевым серверам собирается статистика по трафику и формируется отчет?
A: Только по активным.