Назад | Перейти на главную страницу

HAproxy + отказоустойчивость на тех же узлах, что и apache?

В настоящее время мы используем HAproxy для балансировки нагрузки на наши серверы изображений и приложений, но мы не настроили аварийное переключение. В настоящее время у нас есть только haproxy на одном из ящиков изображений, который затем направляет запросы туда, куда им нужно. Теперь, на следующей неделе, мы переходим на нашу новую площадку (14 серверов, пора прекратить аренду оборудования).

У нас есть 5 внешних серверов приложений. Могу ли я установить haproxy на два из этих ящиков, иметь общий IP-адрес для аварийного переключения и просто переместить apache на порт 9000 или какой-либо другой произвольный порт? У нас уже есть бюджет на colo на следующие пару месяцев, поэтому я бы не хотел иметь два выделенных бокса для JUST HAproxy, если мы сможем этого избежать.

На 5 серверах приложений размещены apache и sphinx. Их серверы приложений взаимодействуют с нашими серверами mysql и нашим растущим кластером cassandra.

HAProxy не заботится о том, находятся ли веб-серверы на локальном компьютере. Добавление Apache на тот же компьютер и использование разных портов вполне допустимо. Когда-нибудь вы можете захотеть посвятить HAProxy, но, вероятно, вам это пока не нужно (HAProxy в настоящее время имеет очень низкое использование ресурсов для переполнения стека).

Другой вариант, помимо нескольких портов, - иметь несколько IP-адресов на каждой машине и привязываться к ним. Вы можете привязать к:

  • подстановочный IP-адрес и конкретный порт
  • порт с подстановочными знаками и конкретный ip
  • подстановочный порт и подстановочный IP-адрес
  • конкретный ip и конкретный порт

Также для привязки к конкретному VIP (виртуальный IP-адрес аварийного переключения) вам понадобится следующее в /etc/sysctl.conf:

net.ipv4.ip_nonlocal_bind=1