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

Конфигурация Apache mod_proxy_balancer

Среда: 5 экземпляров apache (balancerX), которые распределяют трафик между 3 серверами приложений (serverX).

При конфигурации mod_balancer по запросу с тем же коэффициентом нагрузки server1 имеет огромную нагрузку, в то время как другие имеют меньшую нагрузку, поэтому конфигурация балансировщика применяется одинаково ко всем серверам независимо от их реальной нагрузки, поэтому всегда первый подключение к балансировщику1,2,3,4 или 5 перенаправляется на server1. Поскольку пользователям назначаются балансировщики случайным образом из-за HW-балансировщика (которым, к сожалению, нельзя управлять), я не могу контролировать, чтобы 3 сервера получали одинаковое количество подключений.

Как я могу настроить одинаковую нагрузку на server1,2 и 3?

Схема:

Balancer1   Balancer2   Balancer3   Balancer4   Balancer5
---------   ---------   ---------   ---------   ---------
Server1     Server1     Server1     Server1     Server1
Server2     Server2     Server2     Server2     Server2
Server3     Server3     Server3     Server3     Server3

Я думаю, что этого будет сложно добиться идеально. Но я бы начал с изменения порядка BalancerMember директивы на ваших 5 серверах apache, поэтому они различны на каждом сервере. Что-то вроде:

Balancer1   Balancer2   Balancer3   Balancer4   Balancer5
---------   ---------   ---------   ---------   ---------
Server1     Server2     Server3     Server1     Server2
Server2     Server3     Server1     Server3     Server1
Server3     Server1     Server2     Server2     Server3

Вам понадобится 6-й сервер apache, чтобы он работал на 100%.

Обратите внимание, что следующие параметры относятся к Apache v2.4. Если вы используете v2.2, используйте только первое предложение. Я бы также попробовал различные методы балансировки нагрузки, чтобы увидеть, имеет ли это значение. Варианты lbmethod=bybusyness и lbmethod=bytraffic (убедитесь, что вы загрузили соответствующие модули). Если ваши базовые серверы также используют Apache, вы также можете попробовать lbmethod=heartbeat