Mono Web アプリケーションを実行している VirtualHost 内で Apache リバース プロキシが動作しない

Mono Web アプリケーションを実行している VirtualHost 内で Apache リバース プロキシが動作しない

私は以下の仮想ホストでモノラルウェブアプリケーションを実行しています。Apache 2.2.20 / Ubuntu 11.10で実行しています。この仮想ホスト内にリバースプロキシを追加して、この同じドメインに非同期またはAJAXタイプの呼び出しを行えるようにしようとしました。私の非同期リクエストは、他のドメインにあるサービスを呼び出す多くのブラウザで問題を引き起こします(クロスドメインリクエストの問題)。私は、この他のサービスへのリバースプロキシ呼び出しを、http://www.whatever.com/monkey/そこで、これを機能させるために、ディレクティブと top ディレクティブを追加しました。でも、奇妙なことに、何をしても効果がないようです。まったく同じマークアップをデフォルトの Web サイトの仮想ホスト ファイルに配置すれば、問題なく動作します。一体何が問題なのでしょうか? これらの 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> に適用されていると推測します。mono ハンドラーを削除して Apache に ProxyPass* ディレクティブを実行させるには、<Location /monkey> 内に明示的に「SetHandler none」を指定する必要があります。

関連情報