Прокси и балансировщик решают разные задачи, но ломаются по одному сценарию
Прокси работает на уровне прикладного обмена: принимает запрос, может его изменить, добавить заголовки, кэшировать, ограничить доступ или скрыть источник. Балансировщик распределяет поток между несколькими узлами и следит, чтобы трафик уходил на живой backend. Ошибка начинается там, где эти роли смешивают: вместо прозрачного маршрута получают лишнюю точку отказа.
Анализ показал, что стабильность определяется тремя вещами:
— корректным health-check: проверять не только порт, но и ответ приложения;
— таймаутами: connect, read, idle должны быть согласованы между всеми слоями;
— сохранением контекста: если нужен client IP, его надо передавать явно, а не угадывать по логам.
Рассмотрим архитектурный срез по данному узлу. Если прокси терминирует TLS, он видит содержимое запроса и может применять политики. Если балансировщик работает как L4, он не понимает HTTP и не вмешивается в протокол. Если же L7-логика нужна на каждом шаге, важно не дублировать маршрутизацию: иначе сессии начинают «прыгать», а ошибки выглядят как случайные.
Рекомендуется обратить внимание на метрику p95/p99, число повторных подключений и долю 5xx на границе слоев. Данные подтверждают следующую корреляцию: чем больше скрытых преобразований между клиентом и сервисом, тем сложнее локализовать инцидент.
Практическое правило простое: один слой — одна ответственность. Тогда прокси остается точкой политики, балансировщик — точкой распределения, а диагностика строится по понятной цепочке.
Прокси-инфра
@proxy_infra_desk_arb
Прокси и балансировщик решают разные задачи, но ломаются по одному сценарию
Этот пост опубликован в Telegram-канале Прокси-инфра. Подписаться можно по ссылке: @proxy_infra_desk_arb.