Apacheでリバースプロキシーを導入

  • 投稿日:
  • by

先日のMySQLのレプリケーションに続いて、同様にサーバーの負荷分散対策です。

セカンダリーのサーバーにはすでにApacheは導入してありますので、Apacheの設定ファイルをいじるだけです(^^;)



特定のサーバの代理として、そのサーバへの要求を中継するプロキシサーバ。代行されているサーバにアクセスしようとしたユーザは全てリバースプロキシを経由することになるため、サーバが直接アクセスを受けることはなくなる。


設定は非常に簡単でした。

まず、パックエンドのWEBサーバーであるApacheの設定ファイル、「httpd.conf」の以下を変更します。

KeepAlive On

KeepAlive Off


次に転送したいコンテンツを、バックエンドサーバー側に移動しておきます。


そして、バックエンド側のApacheを再起動します。

これでバックエンド側は準備完了です(^^;)


次にプロキシーサーバーとなるマシンのApache設定ファイルを設定します。


# LoadModule proxy_module modules/mod_proxy.so
# LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

上記のように、「mod_proxy」モジュールと「mod_proxy_http」を有効にします。


そして、httpd.confに以下のようなディレクティブを追加します。

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar

上記の設定の場合、「/foo」へのリクエストは、バックエンドサーバーの「http://foo.example.com/bar」へのリクエストとして転送されます。

注意点ですが、「ProxyRequests」は必ず「Off」にしましょう。
「On」にすると、フォワードプロキシーになってしまいます。


後の細かい設定は、これからカット&トライで行きます(^^;)


ステップ式サーバ構築入門 はじめてのApache
小沼 佳洋
技術評論社
売り上げランキング: 480328