PassFront
  1. PassFront
  2. База знаний
  3. DNS, WebSocket и другие протоколы

Чем прямой прокси отличается от обратного?

DNS, WebSocket и другие протоколы

Прямой прокси действует от имени клиентов и скрывает их от серверов, обратный — от имени серверов и скрывает их от клиентов. Механика одна, разница в том, чьи интересы он представляет и кто его настраивает.

Прямой (forward) прокси

  • Клиент о нём знает: настройки браузера, переменная HTTPS_PROXY, PAC-файл.
  • Для HTTPS клиент шлёт CONNECT host:443, и прокси просто туннелирует байты, не видя содержимого, если только это не корпоративный MITM с собственным корневым сертификатом.
  • Зачем: фильтрация и аудит исходящего трафика, кеширование, единый egress IP для allowlist партнёров.

Обратный (reverse) прокси

  • Клиент думает, что говорит с конечным сервером: DNS указывает на прокси.
  • Примеры: nginx, HAProxy, Envoy, Cloudflare.
  • Функции: TLS-терминация, балансировка, кеш, сжатие, rate limiting, WAF, маршрутизация путей на разные сервисы.

Нюансы обратного прокси

  • Приложение видит IP прокси. Реальный берут из X-Forwarded-For или Forwarded, но только если запрос пришёл от доверенного прокси, — иначе заголовок подделывается.
  • X-Forwarded-Proto сообщает, что снаружи был HTTPS; без него приложение строит http:// в редиректах.
  • Таймауты и лимит тела на прокси — частая причина 502, 504 и 413.

Коротко для собеседования

Прямой прокси выбирает и настраивает клиент, обратный — владелец сервиса, и клиент о нём не знает. Для бэкенда главное — доверять X-Forwarded-For и X-Forwarded-Proto только от своего прокси; API gateway — тот же обратный прокси с аутентификацией и квотами.

Другие вопросы раздела