LINUX.ORG.RU

Apache load balancer не работает на одном хосте

 ,


0

2

Есть задача от архитектора по балансированию нагрузки между двумя нодами.

MAIN_URL=http://main:port/
AUX_URL=http://aux:port/

Сам балансер запущен на main на том же порту (тот же инстанс апача, это обязательное требование). Идея архитектора была в том, чтобы все запросы шли в нормальном режиме на main, а в случае нагрузки перебрасывались на aux.

Прокси конфиг, выданный архитектором:

<Proxy balancer://mybalancer>
  BalancerMember $MAIN_URL keepalive=On  connectiontimeout=5 retry=180
  BalancerMember $AUX_URL  keepalive=On  connectiontimeout=5 retry=180
  # byrequests для целей тестирования.
  ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>

<IfDefine IS_AUX>
  ProxyPass        /myapp   balancer://mybalancer/myapp
  ProxyPassReverse /myapp   balancer://mybalancer/myapp
</IfDefine>

Вроде бы сделано всё по мануалам (я специально гуглил, чтобы понять, что здесь происходит).

Теперь мне надо это заставить работать. Оба апача на обоих хостах стартуют нормально, все сервисы отзываются и работают. Но балансировка работает как-то странно.

Тестирую с помощью ab. Если запросы посылать на MAIN_URL/myapp, они выполняются только на main, загрузка не распределяется на вторую ноду. Если запросы посылать на AUX_URL/myapp, он перенаправляет все запросы на main. Я так понимаю, это из-за секции IfDefine IS_AUX, т.е. поведение ожидаемое, но при этом тоже не распределяет равномерно между нодами.

У меня есть подозрение, что апач не может держать балансер и мембер на одном и том же хосте+порте, и здесь нужно использовать какой-нибудь отдельный VirtualHost (?) для main ноды. Но я апач и его конфиги вижу второй раз в жизни, поэтому не могу авторитетно возразить архитектору.

Что здесь вообще можно проверить? Как посмотреть, почему апач не распределяет загрузку через балансер? Или действительно на одном хосте нельзя держать балансер и ноду? Я не смог нагуглить подтверждение.

★★★

В общем, с одним инстансом способа не нашлось.

Подняли второй инстанс в роли balancer member со всеми серверами, а основной инстанс остался только с самим балансером.

E ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.