リバースプロキシ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

リバースプロキシ: Reverse proxy)または逆プロキシは、特定のサーバへの要求を必ず経由するように設置されたプロキシサーバ。一般的なプロキシとは異なり不特定多数のサーバを対象としない。リバースプロキシは、不特定多数のクライアントから寄せられる要求に対して、応答を肩代わりすることにより特定のサーバの負担を軽減したり、アクセスを制限することにより特定のサーバのセキュリティを高めたりする目的に用いられる。

リバースプロキシが使われる理由は以下の通りである。

  • セキュリティ: リバースプロキシサーバを前置することで防御が一段階増える。リバースプロキシに認証認可の機能を持たせる場合もある。複数台のサーバがある場合にリバースプロキシで認証・認可を行うとシングルサインオンを実現できる。
  • 暗号化/SSL高速化: SSL による暗号化でセキュアなWebサイトを作るとき、暗号化をWebサーバ自体が行うのではなく、SSL高速化のためのハードウェアを備えたリバースプロキシサーバで行う。この用途で用いる場合、SSLオフローダとも呼ばれる。
  • 負荷分散: リバースプロキシは負荷を複数のサーバに分散させることができる。Webサーバ群にリバースプロキシを組み合わせる場合、リバースプロキシが各WebページにあるURLを書き換えることもある(外部に公開されているURLを内部の位置に変換する)。
  • 変化しないコンテンツのキャッシュ:リバースプロキシはWebサーバ内の画像などの変化しないコンテンツのキャッシュとして作用し、Webサーバの負荷を低減する。Webサイトアクセスの大部分は参照のみであるため、これによってWebサーバの負荷は大幅に低減される。
  • 圧縮: リバースプロキシはコンテンツを圧縮して最適化し、ロード時間を短縮できる。
  • 速度の調整: Webサーバ上のプログラムがコンテンツを生成している場合、直接クライアントと通信を行うと、クライアント側がダウンロードするのを待たないとプログラムを終了できない。リバースプロキシはWebサーバが生成したコンテンツをまとめてキャッシュし、プログラムはその時点で終了可能となり、クライアントはクライアント側の速度でダウンロードが可能となる。
  • 仮想的なサーバ統合: 複数のサーバがそれぞれ独自のサービスを提供している場合にリバースプロキシを導入して、利用者には1台のサーバとして見せることができる。

関連項目[編集]

  • プロキシ
  • Squid - リバースプロキシとしても使えるプロキシサーバ
  • Apache HTTP Server - リバースプロキシとして使われることもある
  • Lighttpd - 負荷分散機能付きのリバースプロキシとして利用可能
  • Varnish Cache - オープンソースのリバースプロキシ
  • nginx - リバースプロキシ兼Webサーバ

外部リンク[編集]

  • SwitchFlow Reverse Proxy - Linux 用 C++ リバースプロキシ
  • Perlbal - Perlベースのリバースプロキシ/ロードバランサー/Webサーバ
  • PortFusion - オープンソースのリバースプロキシ
  • Pound - 負荷分散のためのリバースプロキシ
  • YXORP - ファイアウォール兼リバースプロキシ。GPL