Anfitriões virtuais aninhados do Apache

3

Eu tenho dois hosts virtuais em um servidor apache e gostaria de fazer algo, mas não sei se é possível.

A coisa é que eu tenho o aplicativo principal desenvolvido e ruby e o blog está no wordpress. Então, agora eu tenho algo assim:

  • example.com e blog.example.com

O que eu gostaria de fazer é que toda a solicitação para www.example.com/blog seja veiculada pelo blog.example.com, mas sem fazer um redirecionamento (ou seja, não quero que o usuário veja uma alteração na URL)

O que eu tentei até agora é fazer um proxy no VirtualHost:

<Location  /blog>
    ProxyPassReverse http://blog.example.com
    ProxyPassReverse http://blog.example.com:80
    RewriteEngine On
    RewriteRule blog/(.*)$ http://blog.example.com/$1 [QSA,P,L]
</Location>

E funciona, mas quando estou no outro aplicativo, todos os links estão dentro do blog.example.com e não no example.com/blog.

Você conhece uma solução alternativa para isso?

Obrigado pela ajuda avançada.

    
por Rafael 26.08.2011 / 03:06

2 respostas

0

Os links são manipulados em seu conteúdo, não pelo Apache. ProxyPassReverse apenas traduz para redirecionamentos - todo o resto está em você.

Corrija-o usando caminhos relativos ao host em seu conteúdo - em vez de vincular a http://blog.example.com/dir/page.html , vincule a /dir/page.html .

Se os links estão sendo gerados dinamicamente pelo WordPress, provavelmente está lendo o cabeçalho do host; ProxyPreserveHost seria o caminho normal em torno disso, mas não funcionaria com ambos os vhosts no mesmo ouvinte - você acabaria enviando solicitações de volta para o vhost que está fazendo o proxy.

    
por 26.08.2011 / 04:03
0

Para um proxy reverso, corrigir os links em sua saída de conteúdo (como mencionado na outra resposta) é o melhor caminho a percorrer, no entanto mod_proxy_html é outra possibilidade.

Dito isso, se você está atendendo a ambos os aplicativos do mesmo servidor Apache, por que se preocupar com os dois hosts virtuais? Você deve ser capaz de servir dois idiomas diferentes a partir do mesmo host virtual, dessa forma você pode pular completamente o passo do proxy reverso.

    
por 26.08.2011 / 06:59