リバースプロキシ (reverse proxy)

pointこの用語のポイント

pointプロキシだよ

pointWebサーバのパシリだよ

pointWebサーバの身代わりをするよ

スポンサーリンク

 簡単に書くよ

リバースプロキシ (reverse proxy)とは

恥ずかしがり屋なWebサーバさん用代理交渉人のこと。
もう少し真面目に書くと

Webサーバさんの身代わりになってホームページのファイルを返してくれるサーバさんのこと
です。

image piyo

 詳しく書くよ

プロキシは「Webブラウザさんの身代わりになってホームページアクセスしてくれるサーバさん」です。
詳細は用語「プロキシ」の解説をご覧ください。

リバースプロキシ

文字通り、このプロキシさんの逆バージョンが「リバースプロキシ」です。
普通のプロキシさんはWebブラウザの身代わりになってくれますが、リバースプロキシさんはWebサーバの身代わりになってくれます。

リバースプロキシ2

……と、いきなり言われても分かりませんよね。

大丈夫です。
順番に見ていきましょう。

あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」とお願いが出されます。

リバースプロキシ3

そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」とお返事がきます。

リバースプロキシ4

お返事を受け取ったWebブラウザさんは、受け取ったページを画面上に表示します。

リバースプロキシ5

これが普通にホームページを見るときの流れです。

ホームページが表示されるまでの流れは

1.Webブラウザ→「このページおくれ」→Webサーバ
2.Webブラウザ←「ほれ、そのページだよ」←Webサーバ


となります。

リバースプロキシ6

次に、普通のプロキシさんが混ざる場合の流れを見てみましょう。

普通のプロキシさんは「Webブラウザさんの身代わり」です。
Webブラウザさんは、まず、プロキシサーバさん(=普通のプロキシ)に対して「あのページを貰ってきておくれ」というお願いを出します。

リバースプロキシ7

次に、プロキシサーバさんがWebブラウザさんの代わりに「このページをおくれ」なお願いをWebサーバさんにします。

リバースプロキシ8

お願いを受け取ったWebサーバさんは、プロキシサーバさんに対して「ほれ、そのページだよ」とお返事を出します。

リバースプロキシ9

Webサーバさんからお返事を受け取ったプロキシサーバさんは、Webブラウザさんに「ほれ、そのページだよ」とお返事を出します。

リバースプロキシ10

プロキシサーバさんからお返事を受け取ったWebブラウザさんは、受け取ったページを画面上に表示します。

リバースプロキシ11

これが普通のプロキシさんが混ざった場合の流れです。

ホームページが表示されるまでの流れは

1.Webブラウザ→「俺の代わりにこのページ貰ってきておくれ」→プロキシサーバ
2.プロキシサーバ→「このページおくれ」→Webサーバ
3.プロキシサーバ←「ほれ、そのページだよ」←Webサーバ
4.Webブラウザ←「ほれ、貰ってきたページだよ」←プロキシサーバ


になります。

リバースプロキシ12

「ページをおくれ」とお願いする側を「クライアント」と呼びます。
「ほれ、そのページだよ」とお返事をする側を「サーバ」と呼びます。
「Webブラウザ+プロキシサーバ」で1つのクライアントなイメージです。
よく分からなければ、Webブラウザのパシリが普通のプロキシだと考えてください。

リバースプロキシ13

さぁ、いよいよ本題です。
ホームページを表示する流れにリバースプロキシさんが混ざる場合を見てみましょう。

流れにリバースプロキシさんが混ざった場合、Webブラウザさんはリバースプロキシサーバさん(=リバースプロキシ)に対して「あのページが見たい」というお願いを出します。

リバースプロキシ14

お願いを受け取ったリバースプロキシサーバさんは、本来のWebサーバさんに「このページをくれってきたよ」と伝えます。

リバースプロキシ15

それに対して、本来のWebサーバさんは「じゃあ、このページ返してあげて」とリバースプロキシサーバさんに対して、お返事をします。

リバースプロキシ16

本来のWebサーバさんからお返事を受け取ったリバースプロキシサーバさんは、Webブラウザさんに「ほれ、そのページだよ」とお返事します。

リバースプロキシ17

リバースプロキシサーバさんからお返事を受け取ったWebブラウザさんは、受け取ったページを画面上に表示します。

リバースプロキシ18

これがリバースプロキシさんが混ざった場合の流れです。

ホームページが表示されるまでの流れは

1.Webブラウザ→「このページおくれ」→リバースプロキシサーバ
2.リバースプロキシサーバ→「このページをくれってきたよ」→Webサーバ
3.リバースプロキシサーバ←「じゃあ、このページ返してあげて」←Webサーバ
4.Webブラウザ←「ほれ、そのページだよ」←リバースプロキシサーバ


になります。

リバースプロキシ19

普通のプロキシさんの場合は「Webブラウザ+プロキシサーバ」で1つのクライアントでしたが、リバースプロキシさんの場合は「リバースプロキシサーバ+Webサーバ」で1つのサーバになるイメージです。
よく分からなければ、Webサーバのパシリがリバースプロキシだと考えてください。

リバースプロキシ20

リバースプロキシを使うメリットは

(1).身元を隠せる
(2).負荷分散ができる


でしょうかね。

(1)のメリットは普通のプロキシと同じです。
矢面に立つのはリバースプロキシサーバさんです。
裏に控えるWebサーバの正体はバレません。

(2)はちょっとややこしいのですが、1つのリバースプロキシに複数のWebサーバを割り当てることができるのです。
普段は

Webブラウザ←→リバースプロキシサーバ←→Webサーバ

の流れですが、Webサーバを複数用意して

Webブラウザ←→リバースプロキシサーバ←→Webサーバ1、Webサーバ2、Webサーバ3

のようにすることもできます。

リバースプロキシ21

そうすれば、Webブラウザさんとやり取りする部分は何も変えないで、Webサーバさん1台あたりの大変さを減らすことができますよね?

リバースプロキシ22

そのようにして負荷分散に使えたりもします。

image piyo2

 一言でまとめるよ

まぁ「リバースプロキシ」って単語が出てきたら「Webサーバさんの身代わりなんだな~」と、お考えください。

一番上に戻るよ


+ Recent posts