Прокси и балансировщик решают разные задачи, и путать их дорого
Прокси стоит на пути трафика и меняет его поведение: скрывает адрес клиента, завершает TLS, кэширует ответы, режет или добавляет заголовки. Балансировщик распределяет нагрузку между несколькими узлами и следит, чтобы запрос попал в живую точку входа. На практике это два слоя с разной логикой отказа.
Анализ показал, что ошибки чаще возникают там, где архитектуру упрощают до одного узла. Прокси может быть L7 и принимать решение по HTTP-заголовкам, а может работать на уровне L4, не понимая содержимого. Балансировщик тоже бывает разным: от простого round-robin до схемы с проверкой состояния, где мертвый бэкенд исключается из пула.
Рассмотрим архитектурный срез по данному узлу. Если прокси завершает соединение, он становится точкой, где видны задержки, таймауты и рост очереди. Если балансировщик смотрит только на TCP, он не знает, что приложение уже отвечает 502. Поэтому нужны отдельные метрики: время ответа, число reset-соединений, доля ошибок по конкретному бэкенду, а не только общая успешность.
Практика простая: не смешивать роли без причины, включать health-check на уровне, который соответствует приложению, и заранее определять, где живет сессия, кэш и TLS. Иначе любой локальный сбой быстро превращается в массовый.
Когда границы слоев зафиксированы, диагностика становится короче, а отказ — предсказуемее.
Прокси-инфра
@proxy_infra_desk_arb
Прокси и балансировщик решают разные задачи, и путать их дорого
Этот пост опубликован в Telegram-канале Прокси-инфра. Подписаться можно по ссылке: @proxy_infra_desk_arb.