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

Как настроить балансировку нагрузки apache httpd с рабочими, которые отличаются только путем, а не хостом?

Как можно настроить балансировку нагрузки в apache httpd, если рабочие различаются только путем, а не хостом?

Например. У меня есть общедоступный URL http://www.example.com/myapp и это должно быть сбалансировано по нагрузке на внутренние домены http://internal.domain.com/myapp1 и http://internal.domain.com/myapp2(тот же хост, другой путь)

Обновить: Проблема в том, что следующая конфигурация (которую я обычно использую) не позволяет использовать разные пути на одном внутреннем хосте, она работает, когда на каждом внутреннем хосте запущен один context / myapp.

ProxyPass /myapp balancer://workers/myapp
ProxyPassReverse /myapp balancer://workers/myapp

<Proxy balancer://workers>
  BalancerMember http://internal1.domain.com
  BalancerMember http://internal2.domain.com
</Proxy>

Я не нашел способа нанести на карту / myapp к

internal1.domain.com/myapp1 
internal1.domain.com/myapp2
internal2.domain.com/myapp1
internal2.domain.com/myapp2

Похоже, вам придется пропустить URL-адреса через mod_rewrite. Так что вам нужно, например,

Listen localhost:8180
Listen localhost:8181

<Proxy balancer://workers>
  BalancerMember http://localhost:8180
  BalancerMember http://localhost:8181
</Proxy>

<VirtualHost localhost:8180>
  RewriteEngine On
  RewriteRule ^/myapp(.*)$ http://internal.domain.com/myapp1$1 [P]
<VirtualHost>

<VirtualHost localhost:8181>
  RewriteEngine On
  RewriteRule ^/myapp(.*)$ http://internal.domain.com/myapp2$1 [P]
<VirtualHost>

или что-то подобное.