hostprofi.ru
Подобрать хостинг
Термин·буква Б

Балансировщик нагрузки (load balancer)

краткое определение

Балансировщик нагрузки (load balancer) — устройство или программное обеспечение, распределяющее входящие запросы между несколькими серверами. Обеспечивает горизонтальное масштабирование, высокую доступность и устойчивость к сбоям отдельных узлов.

Балансировщик нагрузки (load balancer) — компонент инфраструктуры, принимающий входящий трафик и распределяющий его между несколькими бэкенд-серверами (upstream) по заданному алгоритму. Клиент взаимодействует только с балансировщиком и не знает о конкретных серверах за ним. Это обеспечивает линейное масштабирование: добавление нового сервера в пул увеличивает производительность без изменения клиентского кода.

Как работает

Балансировщик функционирует на разных уровнях стека TCP/IP. L4 (транспортный) — балансировка по IP и порту без разбора пакетов: быстро, нет накладных расходов, но нет информации о содержимом. L7 (прикладной) — HTTP/HTTPS-балансировка: можно маршрутизировать по URL, заголовкам, cookie, проверять состояние здоровья бэкенда.

Алгоритмы распределения: Round Robin — по кругу, равномерно; Least Connections — к серверу с наименьшим числом активных соединений; IP Hash — один клиент всегда попадает к одному серверу (сессионная привязка); Weighted — серверам назначаются веса пропорционально мощности.

Health check — регулярная проверка доступности бэкенда: активная (HTTP GET к /health) или пассивная (анализ ошибок реального трафика). Недоступный сервер автоматически исключается из пула, доступный — возвращается.

История

Аппаратные балансировщики F5 BIG-IP появились в 1997 году и долго доминировали на рынке. С 2000-х годов программные решения (HAProxy, Nginx, Keepalived) вытеснили железо в большинстве сценариев. AWS Elastic Load Balancer появился в 2009 году, сделав managed балансировку доступной для всех. Kubernetes Ingress Controller — современная форма балансировщика для контейнерных сред.

Виды балансировщиков

  • HAProxy — L4/L7, самый производительный open-source, используется в миллионах инсталляций.
  • Nginx — L7 балансировка как часть web-сервера, модуль upstream.
  • AWS ALB/NLB — managed cloud балансировщики.
  • F5 BIG-IP — аппаратный/программный enterprise.

Связь с хостингом

В облачных хостингах балансировщик часто доступен как managed-сервис. На VPS балансировщик разворачивается как отдельный экземпляр Nginx или HAProxy перед пулом серверов. Для высокодоступных конфигураций два балансировщика работают в паре с Keepalived и плавающим IP (Virtual IP) — при сбое активного балансировщика резервный принимает IP.

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

Round Robin — поочерёдно. Least Connections — на сервер с наименьшим числом активных соединений. IP Hash — клиент всегда попадает на один сервер (session affinity). Weighted Round Robin — пропорционально весу. В Nginx: upstream { least_conn; server srv1; server srv2; }.

Типы балансировщиков

L4 (TCP/UDP): HAProxy, LVS. L7 (HTTP): Nginx, HAProxy, Envoy. Managed cloud LB: AWS ALB/NLB, Yandex Cloud Load Balancer. Для микросервисов — Envoy + Kubernetes Ingress. Для VPS кластера — HAProxy или Nginx upstream.

Сессии и SSL Termination

SSL Termination: балансировщик расшифровывает HTTPS, на бэкенды отправляет HTTP. Для session affinity без sticky-сессий — вынос сессий в Redis. Health check: балансировщик исключает недоступные узлы из ротации через активные HTTP-проверки.

Другие термины