O proxy reverso do Apache não funciona dentro de um VirtualHost executando um aplicativo Web Mono

O proxy reverso do Apache não funciona dentro de um VirtualHost executando um aplicativo Web Mono

Eu tenho um aplicativo web mono em execução com este host virtual abaixo. Ele está rodando em Apache 2.2.20/Ubuntu 11.10. Tentei adicionar um proxy reverso dentro deste virtualhost para poder fazer chamadas assíncronas ou do tipo AJAX de volta para este mesmo domínio. Minhas solicitações assíncronas teriam problemas em muitos navegadores que chamam serviços que estão em outro domínio (problema de solicitações entre domínios). Estou querendo fazer chamadas de proxy reverso para este outro serviço usandohttp://www.whatever.com/monkey/. Então, adicionei a diretiva e a diretiva principal para tentar fazer isso funcionar. É estranho...nada do que eu faço parece ter algum efeito. Posso colocar exatamente a mesma marcação no arquivo virtualhost do meu site padrão e funciona muito bem. Qual é o acordo? Algumas dessas diretivas Mono estão causando problemas?

<VirtualHost *:80>   
   ServerName www.whatever.com   
   ServerAlias whatever.com *.whatever.com    
   ServerAdmin [email protected]   
   DocumentRoot /home/myuser/web/whatever

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

   <Location /monkey/>  
     ProxyPass http://www.google.com/   
     ProxyPassReverse http://www.google.com/           
   </Location>

   MonoServerPath www.whatever.com "/usr/bin/mod-mono-server2"   
   MonoSetEnv www.whatever.com MONO_IOMAP=all   
   MonoApplications www.whatever.com "/:/home/myuser/web/whatever"

   <Location "/">
     Allow from all
     Order allow,deny
     MonoSetServerAlias www.whatever.com
     SetHandler mono
     SetOutputFilter DEFLATE
     SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary   
   </Location>

   <IfModule mod_deflate.c>
     AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
   </IfModule>
</VirtualHost>

Responder1

Eu acho que o <Location /> SetHandler mono está sendo aplicado a <Location /monkey>. Você provavelmente precisará de um "SetHandler none" explícito dentro de <Location /monkey> para remover o manipulador mono e deixar o Apache executar as diretivas ProxyPass*.

informação relacionada