У меня есть простой интерфейс, который принимает все входящие запросы и обслуживает в основном статический контент, написанный на PHP. Я пересылаю квалифицированные запросы из PHP на сервер, используя curl и снова отправляя ответы пользователю.
У меня есть два (число может увеличиться с течением времени) похожих бэк-эндов, выполняющих тяжелую работу Я хочу добавить балансировку нагрузки (случайный выбор) и проверки работоспособности.
Все эти программные балансировщики нагрузки кажутся очень сложными и сложными в настройке. Есть ли простое решение?
Я думал о реализации этого сам. Должно быть прямым, но, вероятно, не совсем боевым доказательством.
Вам, наверное, стоит попробовать NGINX — HTTP и обратный прокси-сервер. Должно быть легко установить и настроить.
Простого фронтального облачного балансировщика нагрузки должно быть достаточно.
Включите следующие модули Apache:
a2enmod proxy proxy_http proxy_balancer
Затем откройте /etc/apache2/conf.d/proxy-balancerconfigure
и настройте modproxybalancer, добавив следующие строки:
BalancerMember http://10.0.0.1
BalancerMember http://10.0.0.4
ProxyPass / balancer://mycluster
Наконец, настройте свой прокси, чтобы разрешить доступ со всех хостов.
Открыть свой /etc/apache2/mods-enabled/proxy.conf
и заменить следующее:
Deny from all
к
Allow from all
Перезапустите apache, используя `/etc/init.d/apache2 restart«
Надеюсь, это поможет вам.
Источник :
Как настроить интерфейсный облачный балансировщик нагрузки в apache
РЕДАКТИРОВАТЬ
Для простой проверки работоспособности добавьте это в конце каждого члена:
BalancerMember http://10.0.0.4 connectiontimeout=10 retry=600
EDIT2
Для расширенной проверки здоровья см. apache mod_proxy_hcheck (доступно только для Apache 2.5, но не в официальном репозитории)
nginx довольно легко настроить для балансировки нагрузки: