Что такое HAProxy?

«Что такое HAProxy?» — вопрос из категории Веб-серверы и балансировка, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HAProxy (High Availability Proxy) — это высокопроизводительный, открытый балансировщик нагрузки и обратный прокси для TCP- и HTTP-приложений. В моей практике он часто выступает ключевым компонентом для обеспечения отказоустойчивости и масштабируемости сервисов.

Ключевые возможности, которые я использовал:

  • Балансировка нагрузки на уровнях L4 (TCP) и L7 (HTTP).
  • Мощная система ACL (Access Control Lists) для маршрутизации трафика на основе URL, заголовков, IP-адреса и других параметров.
  • Health Checks: Активная проверка работоспособности бэкенд-серверов и автоматическое их исключение из ротации при сбоях.
  • SSL/TLS Termination: Прием HTTPS-трафика и его расшифровка перед передачей на бэкенды.
  • Статистика в реальном времени через веб-интерфейс или Unix socket.

Базовый пример конфигурации для маршрутизации HTTP-трафика:

frontend web_frontend
    bind *:80
    mode http
    # Маршрутизируем API-запросы на отдельный бэкенд
    acl is_api path_beg /api
    use_backend api_servers if is_api
    # Весь остальной трафик идёт на веб-серверы
    default_backend web_servers

backend api_servers
    mode http
    balance roundrobin
    server api1 192.168.1.30:8080 check
    server api2 192.168.1.31:8080 check

backend web_servers
    mode http
    balance leastconn
    server web1 192.168.1.10:80 check
    server web2 192.168.1.11:80 check

Из моего опыта, HAProxy исключительно надёжен и эффективен с точки зрения потребления ресурсов, что делает его идеальным выбором для edge-балансировки в высоконагруженных системах.