apache proxypass no VirtualHost - não deveria substituir o principal?

2

Este é um exemplo banalizado que destaca minha situação:

ProxyPass /google/ http://www.google.com/
ProxyPassReverse /google/ http://www.google.com/

<VirtualHost 127.0.0.1:82>
   ProxyPass /google/ http://www.yahoo.com/
   ProxyPassReverse /google/ http://www.yahoo.com/
</VirtualHost>

Nesse caso, uma solicitação " link " tentará acessar link

Eu também descobri que um ProxyPass definido no main terá precedência sobre diretórios reais disponíveis em um vhost - por exemplo, se acima em vez do VirtualHost ter regras ProxyPass seu DocumentRoot continha um diretório chamado "google" o Proxy ainda estaria em efeito.

Nos documentos do apache, fui levado a acreditar que qualquer definição "principal" seria substituída por um VirtualHost capaz de satisfazer a solicitação.

    
por DisabledLeopard 20.07.2009 / 09:49

1 resposta

2

Infelizmente, você está certo. Eu não sei se isso seria certo, mas você pode remediá-lo incluindo as opções de proxy padrão na seção [VirtualHost padrão ] ( link ) assim:

<VirtualHost _default_:80>
        ServerName noneset
        DocumentRoot /dev/null
        ProxyPass /google/ http://www.google.com/
        ProxyPassReverse /google/ http://www.google.com/
<VirtualHost>

<VirtualHost *:80>
        ServerName myhost
        DocumentRoot /var/www
        ProxyPass /google/ http://www.yahoo.com/
        ProxyPassReverse /google/ http://www.yahoo.com/

</VirtualHost>

<Proxy *>
                Order deny,allow
                Allow from all
</Proxy>
    
por 20.07.2009 / 14:22

Tags