Como passar um pedido de um servidor apache para outro

5

Eu tenho dois servidores Apache com o mod_proxy ativado. Eu quero saber como "passar a solicitação" de "Apache Server A" para "Apache Server B" usando a mesma porta (80).

No "servidor A" com ip interno: 192.168.0.5 configurei o DNS e também estou usando-o como meu servidor de e-mail.

No "servidor B" com ip interno: 192.168.0.10 eu tenho meu próprio servidor de nuvem.

Hoje, quando eu acesso www.meudominio.com.br ou www.meudominio.com.br/webmail tudo funciona porque o conteúdo é todo em "servidor A", o que eu preciso é quando alguém tenta acessar o domínio próprio.domínio.domínio.com, eles podem acessar meu servidor B sem redirecioná-los para outra porta como owncloud.mydomain.com:81, eu só quero usar a porta 80.

Na verdade, recebo um loop de redirecionamento porque, quando tento redirecionar, acho que "SERVER A" está recebendo o mesmo pedido sozinho. Eu configurei meu virtualhost trabalhando no mesmo "SERVER A", o que eu quero é "redirecionar" para outro servidor usando a mesma porta e URL (owncloud.mydomain.com).

Eu não quero redirecionar usando outra porta.

    
por maxtorzito 25.05.2013 / 02:36

1 resposta

10

Você vai querer fazer algo assim no Servidor A:

NameVirtualHost *
<VirtualHost *>
    ServerName owncloud.mydomain.com

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://192.168.0.10:80/
    ProxyPassReverse / http://192.168.0.10:80/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

Dependendo do seu aplicativo, talvez seja necessário usar um ou todos os itens a seguir:

  • X-Forwarded-For - O endereço IP do cliente.
  • X-Forwarded-Host - O host original solicitado pelo cliente no cabeçalho de solicitação HTTP do Host.
  • X-Forwarded-Server - O nome do host do servidor proxy.

Dê uma olhada na documentação do mod_proxy para mais dicas e truques.

Referências

por 25.05.2013 / 04:24