Mod_proxyを有効にした2つのApacheサーバーがあります。同じポート(80)を使用して、「Apache Server A」から「Apache Server B」に「リクエストを渡す」方法を知りたい。
内部IPを持つ「サーバーA」では:192.168.0.5 DNSを構成し、それをメールサーバーとしても使用しています。
内部IPを持つ「サーバーB」:192.168.0.10自分のクラウドサーバーがあります。
今日、wwww.mydomain.comまたはwww.mydomain.com/webmailにアクセスすると、コンテンツはすべて「サーバーA」にあるため、すべてが機能します。誰かがowncloud.mydomain.comにアクセスしようとすると、サーバーBにアクセスできますそれらをowncloud.mydomain.com:81のような別のポートにリダイレクトせずに、ポート80を使用したいだけです。
実際にリダイレクトループが発生するのは、リダイレクトしようとすると、「サーバーA」が同じリクエストを自分で取得しているためです。同じ「サーバーA」で仮想ホストが動作するように設定しましたが、同じポートとURL(owncloud.mydomain.com)を使用して別のサーバーに「リダイレクト」したいのです。
別のポートを使用してリダイレクトしたくない。
サーバーAで次のようなことを行います。
NameVirtualHost *
<VirtualHost *>
ServerName owncloud.mydomain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.0.10:80/
ProxyPassReverse / http://192.168.0.10:80/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
アプリケーションによっては、次のいずれかまたはすべてを使用する必要がある場合があります。
その他のヒントやコツについては、 mod_proxyのドキュメント をご覧ください。