インフラの知識がない人が、学習のために「プロキシとは何か?」を調べてまとめました。
間違いがあればご指摘いただけると嬉しいです。
プロキシって何?
プロキシとは、ユーザーとサーバーの間で中継し、特定の情報を処理するコンピューターのこと
そしてこのプロキシにはフォワードプロキシ と リバースプロキシ というものがある。
- フォワードプロキシ
ユーザーが外部サイトにアクセスできるようにする
- リバースプロキシ
外部からのリクエストを受けて、適切なサーバーに振り分ける
プロキシを高速道路で例えてみた
プロキシ無しの場合
直接アクセス = 一般ゲート(手動)
- 手動で券を取ったり、小銭を探したりする手間がかかる
- 料金所での停車時間が発生し、渋滞の原因になる
- 料金所の係の人と直接運転手がやり取りを行うため、車や顔(IPアドレス)を直接認識し記録され、匿名性は皆無
プロキシ有りの場合
中継+処理自動化 = ETC(自動)
-
代理・中継
-
ETC
: 料金所スタッフの代わりに、機械が車両の情報(通行券の発行や料金の精算)を自動で「代理」してくれる -
プロキシ
: あなたのPC(クライアント)の代わりに、別のサーバーがWebサーバーとの通信を「代理」してくれる
-
フォワードプロキシ
(自分の車に搭載されたETC車載器のイメージ)
プロキシなし(手動)
- 運転手 ↔ 料金所の係の人(Webサーバー)
- 係の人は運転手の顔(IPアドレス)を直接見ている
プロキシあり(ETC)
- 運転手 ↔ ETC車載器(フォワードプロキシ) ↔ 料金所のシステム
- ETC車載器が運転手の代理で通信
- 料金所のシステム(Webサーバー)は係の人の記録(プロキシのIPアドレス)しか認識しない
⇒ スムーズな通行、匿名性の確保
リバースプロキシ
(高速道路会社のシステム側でETCレーンのゲートを管理している部分イメージ)
リバースプロキシなし
- 車(クライアント) ↔ 複数の料金所の係の人(個々のWebサーバー)
- 車が集中すると係の人全員がパンクする可能性あり
リバースプロキシあり
- 車(クライアント) ↔ ETCゲート(リバースプロキシ) ↔ 空いている係の人(Webサーバー)
- ETCゲートがWebサーバーの代理として窓口になる
- 空いている係の人に自動で割り振り(負荷分散)
⇒ どこかのレーンに車が集中してパンクすることはない。不審な車両のブロック(セキュリティ強化)も可能
最後に
プロキシの基本と、フォワード/リバースの違いをざっくりイメージでまとめてみました。
学習することたくさんあって大変だけど、知識が増えるのは純粋に嬉しい