Как можно настроить балансировку нагрузки в 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>
или что-то подобное.