intermediate

Forward и reverse proxies

Отличайте client-side forward proxies от server-side reverse proxies, включая headers, TLS termination, buffering и trust boundaries.

Forward proxy рядом с клиентом — корпоративные proxy, VPN egress, dev tools. Клиент настраивает явно. Reverse proxy перед серверами — Nginx, Envoy, cloud LB. Клиент считает, что говорит с одним origin.

					Forward:  Client → Proxy → Internet → Origin
Reverse:  Client → Reverse proxy → App servers
				

Reverse proxy завершает TLS, маршрутизирует по host/path, добавляет headers (`X-Forwarded-For`, `X-Request-Id`), буферизует медленных клиентов и экранирует app processes. Доверяйте forwarding headers только от известных hop'ов.

На интервью: почему Node слушает private ports за reverse proxy; безопасное восстановление client IP; отличие от API gateway (больше policy на gateway).

Типовые ошибки: доверие подделанному `X-Forwarded-For` из интернета; двойное сжатие; потеря WebSocket upgrade headers.

Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.

Чеклист:

  • TLS и публичный exposure на reverse proxy.
  • Проверка forwarding headers на trust boundary.
  • Сохранение hop-by-hop headers для upgrades.
  • Кто владеет timeouts и buffering.