リバースプロクシ
プロクシだよ
Webサーバのパシリだよ
Webサーバの身代わりをするよ
簡単に書くよ
リバースプロクシ(英:reverse proxy)とは
恥ずかしがり屋なWebサーバさん
(ホームページのファイルが置いてあるコンピュータ)の代理交渉人。
もう少し具体的に書くと
Webサーバさんの身代わりになってホームページのファイルを返してくれるコンピュータ
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「プロクシ」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
プロクシは「ホームページを見るときに使うソフト(Webブラウザ)の身代わりになってホームページにアクセスしてくれるコンピュータ」です。
身も蓋もない言い方をすると、Webブラウザさんのパシリです。
詳細は、用語「プロクシ」の説明を ご覧ください。
ちなみに「プロクシ」という単語自体の意味は「代理」だそうです。
「代わりになってくれるやつ」程度に解釈してください。
また「プロクシ」ではなく「プロキシ」と表現されることも あります。
「クシ」と「キシ」の使い分けは特にありません。
日本語訳するときに「proxy」の「xy」を「クシ」と読んだか「キシ」と読んだかだけの違いでしょう。
以上を踏まえて、文字通り、プロクシさんの逆バージョンが「リバースプロクシ」です。
普通のプロクシさんはWebブラウザの身代わりになってくれますが、リバースプロクシさんは
Webサーバの身代わり
になってくれます。
……と、いきなり言われても分かりませんよね。
大丈夫です。
順番に見ていきましょう。
あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
お返事を受け取ったWebブラウザさんは、受け取ったページを画面上に表示します。
これが普通にホームページを見るときの流れです。
ホームページが表示されるまでの流れは
1.Webブラウザ→「このページおくれ」→Webサーバ
2.Webブラウザ←「ほれ、そのページだよ」←Webサーバ
となります。
次に、普通のプロクシさんが混ざる場合の流れを見てみましょう。
普通のプロクシさんは「Webブラウザさんの身代わり」です。
Webブラウザさんは、まず、プロクシサーバさん(=普通のプロクシ)に対して「あのページをもらってきておくれ」というお願いを出します。
次に、プロクシサーバさんがWebブラウザさんの代わりに「このページをおくれ」な お願いをWebサーバさんにします。
お願いを受け取ったWebサーバさんは、プロクシサーバさんに対して「ほれ、そのページだよ」と お返事を出します。
Webサーバさんからお返事を受け取ったプロクシサーバさんは、Webブラウザさんに「ほれ、そのページだよ」と お返事を出します。
プロクシサーバさんからお返事を受け取ったWebブラウザさんは、受け取ったページを画面上に表示します。
これが普通のプロクシさんが混ざった場合の流れです。
ホームページが表示されるまでの流れは
1.Webブラウザ→「俺の代わりに、このページをもらってきておくれ」→プロクシサーバ
2.プロクシサーバ→「このページおくれ」→Webサーバ
3.プロクシサーバ←「ほれ、そのページだよ」←Webサーバ
4.Webブラウザ←「ほれ、もらってきたページだよ」←プロクシサーバ
に なります。
「ページをおくれ」と お願いする側を「クライアント」と呼びます。
「ほれ、そのページだよ」と お返事をする側を「サーバ」と呼びます。
「Webブラウザ+プロクシサーバ」で1つのクライアントなイメージです。
よく分からなければ、Webブラウザのパシリが普通のプロクシだと思ってください。
さぁ、いよいよ本題です。
リバースプロクシさんが混ざる場合を見てみましょう。
流れにリバースプロクシさんが混ざった場合、Webブラウザさんはリバースプロクシサーバさん(=リバースプロクシ)に対して「あのページが見たい」というお願いを出します。
本来のWebサーバさんの代わりにお願いを受け取ったリバースプロクシサーバさんは、本来のWebサーバさんに「このページをくれってきたよ」と伝えます。
それに対して、本来のWebサーバさんは「じゃあ、このページ返してあげて」とリバースプロクシサーバさんに対して、お返事をします。
本来のWebサーバさんからお返事を受け取ったリバースプロクシサーバさんは、Webブラウザさんに「ほれ、そのページだよ」と お返事します。
リバースプロクシサーバさんからお返事を受け取ったWebブラウザさんは、受け取ったページを画面上に表示します。
これがリバースプロクシさんが混ざった場合の流れです。
ホームページが表示されるまでの流れは
1.Webブラウザ→「このページおくれ」→リバースプロクシサーバ
2.リバースプロクシサーバ→「このページをくれってきたよ」→Webサーバ
3.リバースプロクシサーバ←「じゃあ、このページ返してあげて」←Webサーバ
4.Webブラウザ←「ほれ、そのページだよ」←リバースプロクシサーバ
に なります。
普通のプロクシさんは「Webブラウザ+プロクシサーバ」で1つのクライアントでした。
リバースプロクシさんは「リバースプロクシサーバ+Webサーバ」で1つのサーバになるイメージです。
よく分からなければ、Webサーバのパシリがリバースプロクシだと思ってください。
リバースプロクシを使うメリットは
(1)身元を隠せる
(2)負荷分散ができる
でしょうかね。
(1)のメリットは普通のプロクシと同じです。
矢面に立つのはリバースプロクシサーバさんです。
裏に控えるWebサーバの正体はバレません。
(2)はちょっとややこしいのですが、1つのリバースプロクシに複数のWebサーバを割り当てられるのです。
普段は
Webブラウザ←→リバースプロクシサーバ←→Webサーバ
の流れですが、Webサーバを複数用意して
Webブラウザ←→リバースプロクシサーバ←→Webサーバ1、Webサーバ2、Webサーバ3
のようにすることもできます。
そうすれば、Webブラウザさんとやり取りする部分は何も変えないで、Webサーバさん1台あたりの大変さを減らせますよね。
そのようにして負荷分散に使えたりもします。
一言でまとめるよ
まぁ「リバースプロクシ」って単語が出てきたら「Webサーバさん
(ホームページのファイルが置いてあるコンピュータ)のパシリなんだな~」と お考えください。
おまけ
■訳してみるよ
「reverse(リバース)」の意味は「逆の」とか「反転する」とか「逆転する」とかです。
「proxy(プロクシ)」の意味は「代理」とか「代理人」とかです。
何となく くっつけると
逆の代理人
となります。
■検索してみる?





