PassFront
  1. PassFront
  2. База знаний
  3. Производительность и безопасность сети

Чем балансировщик L4 отличается от L7?

Производительность и безопасность сети

L4-балансировщик распределяет TCP- и UDP-соединения по IP и портам, не заглядывая в содержимое; L7 разбирает HTTP или gRPC и маршрутизирует каждый запрос по пути, заголовкам, cookie.

L4

  • Бэкенд выбирается при установке соединения, дальше все пакеты идут туда же.
  • Очень быстрый и дешёвый, держит миллионы соединений; может не терминировать TCP вовсе (IPVS, Maglev, direct server return).
  • TLS проходит насквозь — сертификаты живут на бэкендах.
  • Примеры: AWS NLB, IPVS, HAProxy в режиме tcp.

L7

  • Терминирует TCP и TLS, читает запрос.
  • Маршрутизация: /api в один сервис, /static в другой; по Host, заголовкам, канареечные релизы по доле трафика.
  • Бонусы: ретраи, health-check по HTTP, sticky sessions по cookie, кеш, WAF, rate limiting.
  • Цена: больше CPU и задержка, ключи TLS хранятся на балансировщике.
  • Примеры: nginx, Envoy, AWS ALB, Traefik.

Когда что

  • gRPC и HTTP/2 на L4 балансируются плохо: одно долгое соединение с тысячами запросов прибито к одному бэкенду. L7 раскидывает каждый запрос.
  • Не-HTTP протоколы вроде PostgreSQL или MQTT — L4.
  • Часто комбинируют: L4 на входе распределяет трафик по флоту L7-прокси.
  • Алгоритмы: round robin и weighted, least connections, consistent hashing, power of two choices.

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

L4 дешевле и быстрее, потому что работает с соединениями и не читает трафик, а L7 платит CPU за умную маршрутизацию каждого запроса. Важная ловушка — gRPC и HTTP/2 за L4 прибиваются к одному бэкенду, поэтому часто ставят L4 перед флотом L7-прокси.

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