Как настроить балансировку нагрузки 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>

или что-то в этом роде.

Другие вопросы по тегам