Балансировщик нагрузки: как распределить трафик между серверами
Балансировщик нагрузки (load balancer) — это узел, который принимает все входящие запросы и распределяет их между несколькими серверами, выполняющими одну и ту же работу. Для пользователя это выглядит как один адрес, за которым на самом деле стоит пул серверов.
Зачем это нужно бизнесу
Пока сайт, портал или приложение крутится на одном сервере, у вас есть единая точка отказа: упал этот сервер — упало всё. И есть потолок: больше определённого числа одновременных пользователей одна машина не вытянет, начнутся тормоза и таймауты. Балансировщик снимает обе проблемы сразу.
Для бизнеса это даёт три эффекта. Первое — отказоустойчивость: если один сервер из пула вышел из строя, балансировщик перестаёт слать на него запросы, и клиенты этого не замечают. Второе — масштабирование: пик нагрузки (распродажа, рассылка, сезон) выдерживается добавлением серверов в пул, а не экстренным переездом на более мощную машину. Третье — обслуживание без простоя: сервер можно вывести из пула, обновить и вернуть обратно, пока остальные продолжают работать.
Как это работает
Балансировщик стоит «перед» серверами и принимает решение, куда отправить каждый запрос, по выбранному алгоритму:
- Round-robin — запросы раздаются по кругу: первый — серверу A, второй — B, третий — C, дальше снова A. Просто и предсказуемо.
- Least connections — запрос уходит на сервер с наименьшим числом активных соединений. Полезно, когда запросы разной «тяжести».
- По хешу IP / sticky session — один и тот же клиент всегда попадает на один сервер. Нужно, когда сессия пользователя хранится локально на сервере.
Ключевая функция — health-check (проверка живости). Балансировщик регулярно опрашивает каждый сервер: отвечает ли он, не отдаёт ли ошибки. Сервер, который не прошёл проверку, временно исключается из пула и возвращается, как только «оживёт».
Балансировщики работают на разных уровнях. L4 (транспортный) распределяет по IP и портам, не вникая в содержимое — быстро и универсально. L7 (прикладной) понимает HTTP: умеет раздавать запросы по URL, заголовкам, доменам, терминировать HTTPS, отдавать статику отдельно от динамики. На L7 обычно живёт и WAF, и кэширование.
В облаке балансировщик чаще берут как готовый сервис провайдера — он сам резервируется и масштабируется. На своём «железе» его строят на nginx, HAProxy или аппаратных решениях.
Балансировщик и HA-кластер
Сам балансировщик не должен стать новой единой точкой отказа. Поэтому его тоже резервируют: два балансировщика в режиме active-passive с общим виртуальным IP, который мгновенно перетекает на живой узел. Вместе с пулом серверов и кластерной СУБД это собирается в полноценную отказоустойчивую (HA) архитектуру.
Когда нужно компании
- Сайт, интернет-магазин или портал, простой которого = прямые потери денег
- Нагрузка неравномерна: есть пики (акции, рассылки, отчётные периоды), под которые держать постоянно мощный сервер дорого
- Нужно обновлять приложение без окна простоя
- Внешний API или сервис с требованием по доступности, зафиксированным в SLA
- Приложение уже упирается в один сервер, и вертикальный рост (более мощная машина) исчерпан
Что включает наша услуга
- Анализ нагрузки и профиля трафика: где узкое место, какие пики
- Проектирование схемы: сколько серверов в пуле, какой алгоритм, как резервируется сам балансировщик
- Настройка балансировки на nginx / HAProxy или в облаке провайдера
- Конфигурация health-check, sticky sessions и терминации HTTPS
- Интеграция с автоматическим масштабированием — серверы добавляются и убираются по нагрузке
- Мониторинг из NOC 24/7: состояние пула, отвалившиеся узлы, всплески ошибок
Связанные термины
- HA и DRS кластер — отказоустойчивость и распределение ресурсов — кластер, в который балансировщик встраивается как один из слоёв
- CDN — сеть доставки контента — снимает с серверов часть нагрузки по статике ещё до балансировщика
- Cloud Connect — прямое подключение к облаку — канал до облачного балансировщика и пула серверов
Что выгоднее держать у себя, а что в облаке, разбираем в статье блога «On-premise или облако: что выгоднее бизнесу».
Хотите оценить стоимость под свою инфраструктуру?
Откройте калькулятор, отметьте нужные услуги — получите ориентир за минуту. Финальная смета после обследования (±15%).
Открыть калькулятор Получить КП