リバースプロキシ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
リバースプロキシ(英: Reverse proxy)または逆プロキシとは、1つ以上のサーバに隣接して設置されるプロキシサーバの一種である。Webサーバの前に置かれることが多い。そのWebサーバに対するアクセスはリバースプロキシを経由して行われ、リバースプロキシが応答する場合もあるし、要求の一部または全部をメインのWebサーバに渡す場合もある。
一方、通常のプロキシはエンドユーザーのブラウザの近くに置かれる。
リバースプロキシが使われる理由は以下の通りである。
- セキュリティ: リバースプロキシサーバを前置することで防御が一段階増える。リバースプロキシに認証・認可の機能を持たせる場合もある。複数台のサーバがある場合にリバースプロキシで認証・認可を行うとシングルサインオンを実現できる。
- 暗号化/SSL高速化: SSL による暗号化でセキュアなWebサイトを作るとき、暗号化をWebサーバ自体が行うのではなく、SSL高速化のためのハードウェアを備えたリバースプロキシサーバで行う。この用途で用いる場合、SSLオフローダとも呼ばれる。
- 負荷分散: リバースプロキシは負荷を複数のサーバに分散させることができる。Webサーバ群にリバースプロキシを組み合わせる場合、リバースプロキシが各WebページにあるURLを書き換えることもある(外部に公開されているURLを内部の位置に変換する)。
- 変化しないコンテンツのキャッシュ:リバースプロキシはWebサーバ内の画像などの変化しないコンテンツのキャッシュとして作用し、Webサーバの負荷を低減する。Webサイトアクセスの大部分は参照のみであるため、これによってWebサーバの負荷は大幅に低減される。
- 圧縮: リバースプロキシはコンテンツを圧縮して最適化し、ロード時間を短縮できる。
- 速度の調整: Webサーバ上のプログラムがコンテンツを生成している場合、直接クライアントと通信を行うと、クライアント側がダウンロードするのを待たないとプログラムを終了できない。リバースプロキシはWebサーバが生成したコンテンツをまとめてキャッシュし、プログラムはその時点で終了可能となり、クライアントはクライアント側の速度でダウンロードが可能となる。
- 仮想的なサーバ統合: 複数のサーバがそれぞれ独自のサービスを提供している場合にリバースプロキシを導入して、利用者には1台のサーバとして見せることができる。
[編集] 関連項目
- プロキシ
- Squid cache - リバースプロキシとしても使えるプロキシサーバ
- Apache HTTP Server - リバースプロキシとして使われることもある
- Lighttpd - 負荷分散機能付きのリバースプロキシとして利用可能
[編集] 外部リンク
- SwitchFlow Reverse Proxy - Linux 用 C++ リバースプロキシ
- Perlbal - Perlベースのリバースプロキシ/ロードバランサー/Webサーバ
- Nginx - リバースプロキシ兼Webサーバ
- Pound - 負荷分散のためのリバースプロキシ
- YXORP - ファイアウォール兼リバースプロキシ。GPL
- Varnish cache - オープンソースのリバースプロキシ