Apache Reverse Proxy no funciona dentro de un VirtualHost que ejecuta una aplicación web Mono

Apache Reverse Proxy no funciona dentro de un VirtualHost que ejecuta una aplicación web Mono

Tengo una aplicación web mono ejecutándose con este host virtual a continuación. Se ejecuta en Apache 2.2.20/Ubuntu 11.10. Intenté agregar un proxy inverso dentro de este host virtual para poder realizar llamadas asincrónicas o de tipo AJAX a este mismo dominio. Mis solicitudes asincrónicas tendrían problemas en muchos navegadores que llaman a servicios que están en otro dominio (problema de solicitudes entre dominios). Quiero hacer llamadas de proxy inverso a este otro servicio usandohttp://www.whatever.com/monkey/. Entonces, agregué la directiva y la directiva superior para intentar que esto funcione. Aunque es extraño... nada de lo que hago parece tener ningún efecto. Puedo poner exactamente el mismo marcado en el archivo virtualhost de mi sitio web predeterminado y funciona muy bien. ¿Cuál es el trato? ¿Algunas de estas directivas Mono están 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>

Respuesta1

Supongo que <Location /> SetHandler mono se está aplicando a <Location /monkey>. Probablemente necesite un "SetHandler none" explícito dentro de <Location /monkey> para eliminar el controlador mono y permitir que Apache ejecute las directivas ProxyPass*.

información relacionada