Apache 反向代理在运行 Mono Web 应用程序的 VirtualHost 中不起作用

Apache 反向代理在运行 Mono Web 应用程序的 VirtualHost 中不起作用

我有一个 Mono Web 应用程序在下面的虚拟主机上运行。它运行在 Apache 2.2.20 / Ubuntu 11.10 上。我尝试在这个虚拟主机内添加一个反向代理,这样我就可以对同一个域进行异步或 AJAX 类型的调用。我的异步请求在许多浏览器调用另一个域上的服务时会出现问题(跨域请求问题)。我想使用http://www.whatever.com/monkey/。因此,我添加了指令和 top 指令来尝试使其工作。但这很奇怪……我所做的似乎没有任何效果。我可以在我的默认网站虚拟主机文件中放置完全相同的标记,并且效果很好。这是怎么回事?这些 Mono 指令中的一些是否会导致问题?

<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>

答案1

我猜想 <Location /> SetHandler mono 正应用于 <Location /monkey>。您可能需要在 <Location /monkey> 内显式地使用“SetHandler none”来删除 mono 处理程序并让 Apache 执行 ProxyPass* 指令。

相关内容