mod_proxy proxy e redirecionar para caminho específico

3

Hoje tenho dois servidores Apache, Servidor A (192.168.0.5), Servidor B (192.168.0.10), ambos em execução na mesma porta 80.

A requisição atual é do servidor a e a com minha configuração passa para o servidor b (usando mod_proxy), isso está funcionando.

Configuração do 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>

quando eu acesso ao mycloud.mydomain.com a requisição é acessada usando o SERVER A mas com o proxy ele "proxies" para o servidor B e então eu vejo o conteúdo no servidor B, isso é ótimo mas agora meu conteúdo está no mycloud. mydomain.com/owncloud, não sei como esse URL pode ser convertido em proxy e redirecionado usando apenas mycloud.mydomain.com.

Esta é outra configuração que eu uso no meu servidor A para usar o mod_proxy

 RewriteCond %{HTTP_HOST}   ^mycloud\.mydomain\.com$ [NC]
 RewriteRule   ^/(.*)$ http://mycloud.mydomain.com/$1  [P]

Eu quero, quando um usuário acessar mycloud.mydomain.com, o redirecionamento mod_proxy e o proxy para mycloud.mydomain.com/owncloud.

Como posso fazer isso?

EDITADO POR MIM

Minha nova configuração é:

RewriteCond %{HTTP_HOST}   ^owncloud\.mydomain\.com$ [NC]
RewriteRule ^/(.*)$ http://192.168.0.10:80/owncloud/$1 [P,L]
ProxyPassReverse / http://192.168.0.10:80/owncloud/

Estou redirecionando para owncloud.mydomain.com, mas as páginas não são bem renderizadas (como alguns css não estão carregando), mas se eu adicionar apenas o / owncloud, tudo funciona, mas eu não quero que o usuário adicione o / owncloud. Isso não está funcionando como esperado, estou fazendo algo errado?

    
por maxtorzito 27.05.2013 / 18:20

2 respostas

3

Altere o proxy usando um pouco estas linhas:

 RewriteRule ^/(.*)$ http:///192.168.0.10:80/owncloud/$1 [P,L]
 ProxyPassReverse / http://192.168.0.10:80/owncloud/

Estas linhas devem substituir estas linhas:

ProxyPass / http://192.168.0.10:80/
ProxyPassReverse / http://192.168.0.10:80/

As linhas acima dizem que as conexões que chegam em / vão para http:///192.168.0.10:80/owncloud/ (RewriteRule) e que as conexões saindo do servidor com proxy /owncloud/ são reescritas para / (ProxyPassReverse).

    
por 27.05.2013 / 18:36
-1

Estou trabalhando no mesmo problema. Eu acho que a configuração do apache está certa, mas você precisa de algumas mudanças no config.php do owncloud, algo como

'overwritehost' => 'apacheVhost.domain.com',
    
por 16.02.2015 / 09:59