Как работают прокси и балансировка нагрузки и чем различаются их задачи?

Forward proxy, reverse proxy и распределение трафика между экземплярами сервиса: где эти понятия пересекаются и какие ограничения важны при диагностике.

Короткий ответ

Что ответить на собеседовании

Прокси посредничает в обмене между сторонами, а балансировщик распределяет трафик между несколькими обработчиками. Reverse proxy может одновременно выполнять балансировку, но прокси с единственным upstream не обязан быть балансировщиком. Алгоритм распределения, проверки доступности и хранение состояния нужно настраивать отдельно; сами названия не гарантируют отказоустойчивости.

Подробный разбор

Ответ с пояснениями

Forward proxy действует со стороны клиента и обращается к целевым ресурсам от его имени. Reverse proxy принимает обращения к сервису и передает их внутреннему серверу. Возможности вроде фильтрации, кеширования или завершения TLS зависят от реализации и конфигурации, а не обязательны для любого прокси.

Балансировка нагрузки решает другую задачу: выбирает обработчик из нескольких экземпляров. Ею может заниматься reverse proxy, но эти термины не синонимы. Прокси может передавать все запросы одному серверу, а балансировщик может работать на транспортном уровне без понимания HTTP.

Например, перед тремя экземплярами приложения расположен Nginx. Он принимает HTTP-запрос и выбирает upstream по настроенному правилу. В документации Nginx описаны, в частности, round-robin, least-connected и IP-hash. Ни один алгоритм не означает, что фактическая вычислительная нагрузка всегда будет одинаковой: запросы различаются по стоимости.

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

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку