HA и балансировка нагрузки httpd с HAProxy

HA и балансировка нагрузки httpd с HAProxy

Я работаю над инфраструктурой, где http-трафик обратно проксируется httpd-серверами. Мы хотели бы остаться на httpd (вместо того, чтобы рассматривать, например, Nginx), поскольку у нас много виртуальных хостов, настроенных на этой платформе.

Теперь я хотел бы добавить функции HA и балансировки нагрузки в часть обратного прокси. Если я создам кластер «активный-активный», мне понадобится решение вроде DNS round robin, которое я бы не хотел рассматривать в качестве первого варианта (потому что его сложно получить).

Будет ли это хорошим решением, настроить кластер HAProxy active-pass (с плавающим IP), балансировку нагрузки (в режиме TCP, уровень 4) кластер httpd active-active, выполняя настоящее обратное проксирование http(s)? Таким образом я бы добился следующего:

  1. HA. HAProxy отказоустойчив, так как httpd
  2. Балансировка нагрузки. Httpd сбалансированы по нагрузке (активный-активный). HAProxy — нет (активен один хост), но я предполагаю, что он будет масштабироваться лучше, чем httpd, при обработке трафика, при этом одного узла будет достаточно.
  3. Имея балансировку нагрузки HAProxy в TCP, я могу оставить всю конфигурацию http и https на стороне httpd.

Есть ли недостатки у этого подхода или более эффективные решения?

решение1

Сай,

Похоже, вы нашли разумное решение. Вы описываете типичное развертывание балансировщика нагрузки HA для кластера приложений. HAProxy дает вам большую гибкость, если и когда она вам нужна, а режим TCP pass-through хорош и прост.

Единственная проблема — это дополнительная сложность надежного обслуживания кластера HAProxy. Я предполагаю, что вы будете использовать Keepalived?

В Loadbalancer.org мы в настоящее время используем Heartbeat (HA-Linux), но вскоре перейдем на нашу собственную систему Pulse HA с поддержкой режима «активный/активный» на нескольких балансировщиках нагрузки.

Связанный контент