Как настроить балансировку нагрузки apache httpd для рабочих, которые отличаются только по пути, а не по хосту?
Как настроить балансировку нагрузки в apache httpd, если рабочие отличаются только по пути, а не по хосту?
Например, у меня есть общедоступный URL http://www.example.com/myapp
и это должно быть сбалансировано по нагрузке на внутренние домены http://internal.domain.com/myapp1
а также http://internal.domain.com/myapp2
(тот же хост, другой путь)
Обновление: проблема в том, что следующая конфигурация (которую я обычно использую) не позволяет использовать разные пути на одном внутреннем хосте, она работает, когда на каждом внутреннем хосте работает один контекст /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
1 ответ
Похоже, вам нужно будет запустить 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>
или что-то в этом роде.