Como configurar o balanceamento de carga do httpd do apache com trabalhadores que diferem apenas no caminho, não no host?

3

Como o balanceamento de carga do apache httpd pode ser configurado se os funcionários diferirem apenas no caminho, não no host?

Por exemplo Eu tenho o URL público http://www.example.com/myapp e isso deve ser balanceado para os domínios internos http://internal.domain.com/myapp1 e http://internal.domain.com/myapp2 (mesmo host, caminho diferente)

Atualização: O problema é que a seguinte configuração (que eu costumo usar) não permite caminhos diferentes em um host interno, ele funciona quando todo host interno tem um contexto / myapp em execução.

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

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

Não encontrei nenhuma maneira de mapear / myapp para

internal1.domain.com/myapp1 
internal1.domain.com/myapp2
internal2.domain.com/myapp1
internal2.domain.com/myapp2
    
por Sylar 13.11.2014 / 12:25

1 resposta

1

Parece que você teria que executar as URLs por meio de mod_rewrite . Então você precisaria, por exemplo,

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>

ou algo louco assim.

    
por 20.11.2014 / 06:15