【Apache】 ReverseProxy(リバースプロキシ)を設定してサブディレクトで別サーバーの内容を表示
公開日:
:
Apache
今回はApacheのリバースプロキシ設定について紹介したいと思います。この方法を使うと、urlのあるサブディレクトリについて、別サーバーに構築してあるwebサーバーの内容を表示することができます。
前提条件
リバースプロキシを利用するにはmod_proxyを有効にする必要があります。httpd.confでコメントアウトされている場合は、コメントアウトを外してください。
test.comのhttpd.conf設定
まず、test.comというドメインについて/var/www/html/testをドキュメントルートとしてアクセスできるように設定をします。
・httpd.conf
DocumentRoot "/var/www/html/test" ServerName test.com ErrorLog "logs/test.com_error.log" CustomLog "logs/test.com_access.log" common
ブラウザで
test.comにアクセス ⇒ /var/www/html/test/index.html
test.com/proxyにアクセス ⇒ /var/www/html/test/proxy/index.html
が表示されるかと思います。
ここでリバースプロキシの設定を追加してtest.com/proxy以下については別サーバーに構築済みのhttp://proxy.test.comを参照するように変更します。
・httpd.conf
DocumentRoot /var/www/html/test ServerName test.com ErrorLog "logs/test.com_error.log" CustomLog "logs/test.com_access.log" common ProxyPass /proxy http://proxy.test.com ProxyPassReverse /proxy http://proxy.test.com
これにより、
test.comにアクセス ⇒ /var/www/html/test/index.html
test.com/proxyにアクセス ⇒ http://proxy.test.com/index.html
が表示されるようになります。
test.com/proxy 以下の参照場所を変更しているのでtest.com/proxy/aaa/bbb等、下位階層にアクセスした場合も、/var/www/html/proxy 以下のディレクトリが参照されるようになります。
一部のサブディレクトリについてサーバーごと分離することができます。
ただし、サイトを個別に公開した場合と違い、必ずリバースプロキシを設定しているwebサーバーを経由することになるので、http://test.com のwebサーバーにアクセスが集中することになります。実際にどれほどの負荷となるのかなどは分かりませんが、あまりに大量のサイトを設定するような場合は注意が必要かもしれません。
負荷計測等については今後試してみたいと思います。
また、aliasの設定ど同様にrewriteやredirectを設定していて、proxyの対象としたいpathがrewrite等の対象となっていると、rewriteが有効となってしまい、proxyが効かなくなってしまいますので注意が必要です。
ad_right_top
関連記事
-
-
【Apache】 Aliasを設定してサブディレクトでDocumentRoot以外を参照する
今回はApacheのAlias設定について紹介したいと思います。この方法を使うと、あるサブディレクト
-
-
Apache:mod_rewriteでURLを正規化
今回はApacheの「 mod_rewrite」を使用してURLの正規化の方法を掲載します。
-
-
Apache:サーバー起動時の自動起動設定
linuxサーバーでサーバー起動時にApacheを自動起動する為の設定です。chkconfigをon
-
-
Apache:CentOSへのApacheインストール
linuxサーバーへのapacheのインストール手順について掲載します。 環境
-
-
Apache:configファイルのチェック
Apacheの設定を変更することは良くあるかと思いますが、記述を間違えていて起動エラーでサーバーを止
-
-
Apache:KeepAliveの設定
ブラウザでwebページを表示する場合、htmlに加えて複数のcssやjavascriptなどのファイ