リバースプロキシ (reverse proxy)
プロキシだよ
Webサーバのパシリだよ
Webサーバの身代わりをするよ
簡単に書くよ
リバースプロキシ (reverse proxy)とは
恥ずかしがり屋なWebサーバさん用代理交渉人のこと。
もう少し真面目に書くと
Webサーバさんの身代わりになってホームページのファイルを返してくれるサーバさんのこと
です。
詳しく書くよ
プロキシは「Webブラウザさんの身代わりになってホームページにアクセスしてくれるサーバさん」です。
詳細は用語「プロキシ」の解説をご覧ください。
文字通り、このプロキシさんの逆バージョンが「リバースプロキシ」です。
普通のプロキシさんは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ブラウザさんは、受け取ったページを画面上に表示します。
これがリバースプロキシさんが混ざった場合の流れです。
ホームページが表示されるまでの流れは
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サーバさんの身代わりなんだな~」と、お考えください。
'C Lang > IT Knowledge' 카테고리의 다른 글
CIDR(Classless Inter-Domain Routing) 표기법 (0) | 2018.06.04 |
---|---|
스카이프 비즈니스 어카운트 데이터 플로우 with AI-HUB (0) | 2018.05.28 |
Webhookって何?を子どもでもわかるように描いてみた (0) | 2018.05.11 |
cmd로 어떤 프로세스에서 어떤 파일을 사용하고 있는지 검색하는 방법 (0) | 2018.05.09 |
IT 용어집 (0) | 2018.01.11 |