
Я работаю над инфраструктурой, где http-трафик обратно проксируется httpd-серверами. Мы хотели бы остаться на httpd (вместо того, чтобы рассматривать, например, Nginx), поскольку у нас много виртуальных хостов, настроенных на этой платформе.
Теперь я хотел бы добавить функции HA и балансировки нагрузки в часть обратного прокси. Если я создам кластер «активный-активный», мне понадобится решение вроде DNS round robin, которое я бы не хотел рассматривать в качестве первого варианта (потому что его сложно получить).
Будет ли это хорошим решением, настроить кластер HAProxy active-pass (с плавающим IP), балансировку нагрузки (в режиме TCP, уровень 4) кластер httpd active-active, выполняя настоящее обратное проксирование http(s)? Таким образом я бы добился следующего:
- HA. HAProxy отказоустойчив, так как httpd
- Балансировка нагрузки. Httpd сбалансированы по нагрузке (активный-активный). HAProxy — нет (активен один хост), но я предполагаю, что он будет масштабироваться лучше, чем httpd, при обработке трафика, при этом одного узла будет достаточно.
- Имея балансировку нагрузки HAProxy в TCP, я могу оставить всю конфигурацию http и https на стороне httpd.
Есть ли недостатки у этого подхода или более эффективные решения?
решение1
Сай,
Похоже, вы нашли разумное решение. Вы описываете типичное развертывание балансировщика нагрузки HA для кластера приложений. HAProxy дает вам большую гибкость, если и когда она вам нужна, а режим TCP pass-through хорош и прост.
Единственная проблема — это дополнительная сложность надежного обслуживания кластера HAProxy. Я предполагаю, что вы будете использовать Keepalived?
В Loadbalancer.org мы в настоящее время используем Heartbeat (HA-Linux), но вскоре перейдем на нашу собственную систему Pulse HA с поддержкой режима «активный/активный» на нескольких балансировщиках нагрузки.