Все локации активны · 99.99% uptime
Сравнение

Разница между reverse proxy и балансировщиком нагрузки

На практике одно и то же ПО (Nginx, HAProxy, Traefik) может выполнять обе задачи. Поэтому эти два термина часто путают. Но концептуально они решают разные задачи: обратный прокси — это посредник, балансировщик нагрузки — это распределитель.

Концептуальная разница

СХЕМАСравнение двух понятий
СРАВНЕНИЕReverse proxyLoad balancerОсновная задачаПринимать запросы и пере…Распределять нагрузкуСколько серверов за нимОдин или несколькоВсегда несколькоТипичные дополнительные функцииТерминация TLS, кэш…Проверка состояния, привязка сессий…Уровень работыОбычно 7 (HTTP)4 или 7Имеет ли смысл с одним серверомДаМожет ли добавлять заголовки

Любой балансировщик нагрузки может быть своего рода обратным прокси, но не каждый обратный прокси является балансировщиком нагрузки. Nginx перед одним сервером не балансирует нагрузку, но выполняет роль обратного прокси.

Разделение на уровень 4 и уровень 7

СХЕМАНа каком уровне балансировка нагрузки?
УРОВЕНЬ7ПриложениеHTTP / HTTPSРешение по URL, заголовкам и cookie4TCP / UDPПорт и надёжностьРешение только по IP и порту3СетьIPМаршрутизация

Балансировка уровня 7 читает содержимое: она может отправить запросы «/api» на один сервер, а «/статика» — на другой. Уровень 4 быстрее, но о содержимом не знает.

Алгоритмы распределения нагрузки

СХЕМАРаспространённые стратегии распределения
АЛГОРИТМВходящие запросытысячи в секундуRound-robinраспределяет по очереди — самый простой%27Наименьшее число соединенийдействительно выравнивает нагрузку%33IP hashодин и тот же клиент — на один и тот же сервер%20Взвешенныйболее мощному серверу — больше%20

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

Типичная архитектура

В реальных системах оба работают вместе. Слои выстраиваются так:

УровеньКомпонентНазначение
1DNS / AnycastНаправляет пользователя в ближайший регион
2CDNОтдаёт статическое содержимое с edge
3Load balancer (L4)Распределяет трафик внутри региона
4Reverse proxy (L7)Терминирует TLS, применяет правила маршрутизации
5Серверы приложенийВыполняют основную работу
Где forward proxy?

В этой архитектуре forward proxy нет нигде — потому что он находится на другом конце цепочки, на стороне пользователя. Различие в статье о forward- и reverse-прокси .

Проверка состояния

Это самое явное отличие балансировщика нагрузки от обратного прокси: он постоянно следит за состоянием серверов за собой и выводит неисправный из пула.

СХЕМАСостояния бэкенд-сервера
СОСТОЯНИЕИСПРАВЕН3 неудачные проверкиполучает трафикПОД ПОДОЗРЕНИЕМошибки продолжаютсятрафик сниженОТКЛЮЧЁН2 успешные проверкитрафик прекращёнВОЗВРАЩЁНпостепенный трафикВозврат должен быть постепенным — резкая полная нагрузка может снова вывести сервер из строя

Эта логика в точности совпадает с логикой управления пулом прокси. В нашей статье о пуле мы описали клиентский аналог того же шаблона.

Почему это важно при сборе данных?

Балансировщик нагрузки целевого сайта может распределять ваши запросы по разным серверам. Это может приводить к несогласованным результатам:

  • Разные версии: во время постепенного развёртывания часть серверов может работать на новой версии.
  • Потеря сессии: если привязки сессии нет, ваши cookie могут не распознаться на другом сервере.
  • Переменное время ответа: между серверами может быть разница в производительности.
  • A/B-тесты: разные запросы могут получать разные варианты.

Чтобы уменьшить эту несогласованность, помогает использование sticky-сессий и отправка последовательных запросов с одного IP.

Резюме

Обратный прокси — это посредник, который принимает запросы и передаёт их дальше; балансировщик нагрузки — компонент, который распределяет эти запросы между несколькими серверами и следит за их состоянием. Одно и то же ПО может выполнять обе роли, поэтому термины путают. Балансировка уровня 4 быстрая, но не знает о содержимом, а балансировка уровня 7 учитывает содержимое, но обходится дороже. При сборе данных эти слои на стороне цели могут быть скрытой причиной несогласованных результатов и обрывов сессий.

Часто задаваемые вопросы

01Reverse proxy и load balancer — это одно и то же?

Нет, но они пересекаются. Обратный прокси принимает запросы и передаёт их дальше; балансировщик нагрузки распределяет их между несколькими серверами и следит за их состоянием. Одно и то же ПО может выполнять обе роли.

02Что лучше — уровень 4 или уровень 7?

Зависит от ситуации. Уровень 4 быстрее и потребляет меньше ресурсов; уровень 7 гораздо гибче, поскольку может принимать решения по URL, заголовкам и cookie.

03Где в этой архитектуре forward proxy?

Нигде — он находится на другом конце цепочки. Forward proxy стоит на стороне пользователя и управляет его идентичностью; обратный прокси и балансировщик нагрузки находятся на стороне сервера.

04Почему при сборе данных я получаю несогласованные результаты?

Возможно, балансировщик нагрузки цели распределяет ваши запросы по разным серверам. Постепенное развёртывание, A/B-тесты и отсутствие привязки сессии порождают эту несогласованность.

05Как обеспечить привязку сессии?

На стороне сервера используется IP hash или привязка на основе cookie. На стороне клиента помогает отправка последовательных запросов с одного и того же IP выхода (sticky-сессия прокси).

Связанные статьи и страницы

СЛЕДУЮЩИЙ ШАГ

Усильте свою прокси-инфраструктуру уже сегодня.

Начните с платным тарифом за считанные минуты или сначала попробуйте наш бесплатный список прокси.

FREEPROXY.TR

Ищете бесплатные прокси — вы попали по адресу

Комплексная прокси-платформа, где можно посмотреть актуальные адреса бесплатных прокси, сравнить типы HTTP и SOCKS и проверить свои прокси-подключения бесплатными инструментами.