IT用語

プロキシサーバとは?フォワードプロキシとリバースプロキシの違いを画像多めで解説!

クマノくらげ

この記事でわかること

・プロキシサーバーとは何か
・フォワードプロキシとは何か
・リバースプロキシとは何か
・フォワードプロキシとリバースプロキシの違い
・ロードバランサやCDNとの関係
・試験で迷ったときの見分け方

プロキシサーバとは?

プロキシサーバーは、簡単に言うと、
利用者やサーバーの代わりに通信を中継するサーバーのことだよ。

代わりに通信する?

そう。
プロキシは英語で proxy、つまり「代理」という意味なんだ。

代理人みたいな感じ?

そうそう。
たとえば、Webサイトを見たいとするよね。
普通なら、パソコンが直接Webサイトにアクセスする。

パソコン
↓
Webサイト

でも、プロキシサーバーを使うと、間にプロキシサーバーが入る。

パソコン

プロキシサーバー

Webサイト

つまり、プロキシサーバーが間に入って、代わりにWebサイトへアクセスするんだね。

身近な例:受付係で考える

会社の受付係で考えてみよう。

受付係?

たとえば、外部の人が社長に直接会いに来たとする。
でも、いきなり社長室に行かせるのは危ないよね。

たしかに。まず受付で確認するね。

そう。
受付係が、

誰が来たのか
何の用件か
通してよい相手か
危ない人ではないか

を確認してから、社長につなぐ。

なるほど。
プロキシサーバーも、通信の受付係みたいなもの?

そう。
通信を直接通すのではなく、間に入って確認したり、中継したりするんだ。

プロキシサーバーでできること

プロキシサーバーを使うと、何ができるの?

主にこんなことができるよ。

できること内容具体例
通信の中継利用者やサーバーの代わりに通信するクライアントとWebサーバーの間で通信を仲介
アクセス制御見てよいサイト、見てはいけないサイトを制御する社内PCからSNSサイトへのアクセスを制限
ログ取得誰がどこにアクセスしたか記録する社員のWebアクセス履歴を保存
キャッシュよく見るページを一時保存して高速化する頻繁に閲覧されるWebページをプロキシ内に保存
セキュリティ対策危険な通信や不正アクセスを遮断するマルウェア配布サイトへの接続をブロック
サーバー保護外部から直接サーバーを見せないようにするリバースプロキシ経由でWebサーバーを公開

ただ中継するだけじゃなくて、管理やセキュリティにも使われるんだね。

そう。
だから会社や学校、Webサービスの裏側などでよく使われる。

プロキシサーバーには種類がある

プロキシサーバーって、全部同じなの?

大きく分けると、よく出てくるのはこの2つだね。

種類役割イメージ
フォワードプロキシ利用者(クライアント)の代わりに通信する 利用者側の代理人
リバースプロキシサーバーの代わりに通信するサーバー側の代理人

利用者側の代理と、サーバー側の代理?

そう。
この違いがかなり大事。

迷ったときは、「誰の代理をしているか」で考えると分かりやすいよ。
利用者の代わりに外へ行くならフォワードプロキシ。
サーバーの代わりに外からのアクセスを受けるならリバースプロキシ。

フォワードプロキシとは?

フォワードプロキシは、
利用者の代わりにインターネットへアクセスするプロキシだよ。

利用者の代わり?

たとえば、会社の社員がWebサイトを見ようとする。
そのとき、社員のパソコンが直接インターネットに出るのではなく、会社のプロキシサーバーを通る。

社員のPC
↓
フォワードプロキシ
↓
インターネット上のWebサイト

社員側に近い場所にあるプロキシなんだね。

そう。
だから、フォワードプロキシは 利用者側の代理 と考えると分かりやすい。

フォワードプロキシの目的

フォワードプロキシは何のために使うの?

会社や学校でよくある目的はこんな感じ。

目的内容
アクセス制限業務に関係ないサイトや危険なサイトへのアクセスを制御する
ログ管理利用者のWebアクセス履歴を記録する
セキュリティ対策不正サイトやマルウェアへのアクセスを防止する
キャッシュ頻繁に利用するページを保存し、通信を高速化する
匿名性の確保利用者の端末情報を外部から見えにくくする

会社で「このサイトは見られません」って出るやつ、プロキシが関係してることもあるの?

あるね。
会社のフォワードプロキシが、アクセス先をチェックして止めている場合があるよ。

フォワードプロキシの例

たとえば会社で、社員が動画サイトにアクセスしようとしたとする。

社員:
動画サイトを見たい

フォワードプロキシ:
このサイトは業務に関係ないのでブロックします

社員の代わりに外へ出るけど、同時にチェックもしてるんだ。

そう。
フォワードプロキシは、会社のネットワークを守ったり、利用ルールを守らせたりするために使われることが多い。

リバースプロキシとは?

じゃあ、リバースプロキシは?

リバースプロキシは、
Webサーバーの前に立って、サーバーの代わりに外部からのアクセスを受けるプロキシだよ。

今度はサーバー側の代理?

そう。
利用者から見ると、直接Webサーバーにアクセスしているように見える。
でも実際には、まずリバースプロキシが受け取って、その後ろにあるWebサーバーへ振り分ける。

利用者
↓
リバースプロキシ
↓
Webサーバー

サーバーの前にいる門番みたいな感じ?

まさにそんな感じだね。
リバースプロキシは、サーバーを守る門番・受付係みたいな役割をする。

リバースプロキシの目的

リバースプロキシは何のために使うの?

主な目的はこんな感じだよ。

目的内容具体例
サーバー保護本物のWebサーバーを直接外部に見せないリバースプロキシを入口にしてWebサーバーを隠す
負荷分散複数のWebサーバーへアクセスを振り分けるWebサーバーA・B・Cにアクセスを分散
SSL/TLS終端HTTPS通信の暗号化・復号処理を担当するリバースプロキシでHTTPSを処理する
キャッシュよく使うコンテンツを保存して高速化する画像やCSSを一時保存して表示を速くする
セキュリティ対策不審なアクセスを遮断する攻撃らしいリクエストをブロックする
URLや経路の整理アクセス先に応じて裏側のサーバーを切り替える/api はAPIサーバーへ、/images は画像サーバーへ振り分ける

リバースプロキシは、Webサービスを提供する側で使うんだね。

そう。
フォワードプロキシは利用者側。
リバースプロキシはサービス提供側。
ここが大きな違いだね。

リバースプロキシの例

たとえば、人気のショッピングサイトを考えよう。

利用者が大量にアクセスすると、1台のWebサーバーだけでは大変だよね。

アクセスが集中して落ちそう。

そこで、リバースプロキシが前に立って、複数のWebサーバーにアクセスを振り分ける。

リバースプロキシが交通整理しているんだね。

これにより、特定のサーバーに負荷が集中しにくくなるんだよ。

フォワードプロキシとリバースプロキシの違い

フォワードプロキシとリバースプロキシの違いを整理してみよう。

比較項目フォワードプロキシリバースプロキシ
代理する対象利用者側サーバー側
主な利用者会社・学校・個人利用者などWebサービス提供者
置かれる場所利用者とインターネットの間インターネットとWebサーバーの間
主な目的アクセス制御、ログ管理、匿名化、キャッシュ負荷分散、サーバー保護、SSL/TLS終端、キャッシュ
例え社員の代わりに外へ問い合わせる受付Webサーバーの前に立つ門番
見え方Webサイトからはプロキシがアクセスしているように見える利用者からはリバースプロキシがWebサーバーに見える

誰の代理なのかを見ると分かりやすいね。

そうだね、わかりやすいのは

フォワードプロキシ:利用者の代理
リバースプロキシ:サーバーの代理

ってところだね。

たとえ話で違いを整理

最初にやった、会社の受付がプロキシサーバってやつ、フォワードプロキシとリバースプロキシでやるとどうなる?

フォワードプロキシから例えてみよう。

フォワードプロキシ:社員側の代理

社員が外部の取引先に問い合わせたいとする。
でも社員が直接連絡するのではなく、会社の窓口担当が代わりに問い合わせる。

社員
↓
会社の窓口担当
↓
外部の取引先

この窓口担当がフォワードプロキシ。

社員側の代理だね。

リバースプロキシ:会社側の受付

逆に、外部の人が会社に問い合わせてきたとする。
そのとき、いきなり担当部署に直通ではなく、まず受付が受ける。

外部の人
↓
会社の受付
↓
担当部署

この受付がリバースプロキシ。

なるほど。最初の受付係の例は、どちらかというとリバースプロキシ寄りだったんだね。

そうだね。外から来る人を会社側で受ける例だから、リバースプロキシに近いね。
フォワードプロキシの場合は、社員の代わりに外へ問い合わせる窓口担当をイメージすると分かりやすいよ。

プロキシサーバーとキャッシュ

プロキシサーバーってキャッシュもするって言ってたけど、どういうこと?

キャッシュは、一度取得したデータを一時的に保存しておくことだよ。

同じページを何度も取りに行かなくていいってこと?

そう。
たとえば、多くの社員が同じ社内資料ページを見るなら、プロキシがその内容を一時保存しておく。

1回目:Webサイトから取得して保存
2回目:保存済みのデータを返す

通信が速くなったり、外への通信量が減ったりするんだね。

そう。
フォワードプロキシでもリバースプロキシでも、キャッシュ機能が使われることがあるんだ。

プロキシサーバーとセキュリティ

プロキシサーバーはセキュリティにも関係するの?

かなり関係するよ。

フォワードプロキシのセキュリティ

  • 危険なサイトへのアクセスを止める
  • 社内からのアクセスを記録する
  • 業務に不要なサイトを制限する

リバースプロキシのセキュリティ

  • Webサーバーを直接外部に見せない
  • 不審なアクセスを遮断する
  • WAFと連携して攻撃を防ぐ

フォワードは利用者側の通信を守る。
リバースはサーバー側を守る。
そう考えると分かりやすいね。

リバースプロキシとロードバランサの関係

リバースプロキシとロードバランサって同じなの?

ロードバランサーも振り分けを行うよね。

完全に同じではないけど、役割が重なることがあるよ。

重なる?

ロードバランサは、アクセスを複数のサーバーに振り分ける装置や仕組みのことだよね。

リバースプロキシも設定によってはこの負荷分散を行える。

じゃあ、リバースプロキシがロードバランサの役割をすることもあるんだね。

そう。
ただし、ロードバランサは負荷分散が主目的。
リバースプロキシは、サーバーの前に立って中継・保護・キャッシュ・SSL終端なども行う。
重なる部分はあるけど、完全に同じ意味ではないよ。

負荷分散がメインかそうでないかって感じだね。

その理解でOK。
細かいこと言うと、最新のロードバランサーは多機能だから、WAF機能とか、TLS終端機能があったりするよ。

リバースプロキシとCDNの関係

CDNも振り分けしているイメージだけど関係ある?

似ている部分はあるね。
CDNは、世界中や各地域にあるサーバーにコンテンツを配置して、ユーザーに近い場所から配信する仕組みだったね。

画像とか動画を速く表示するんだよね。

そう。
CDNも、利用者と本来のサーバーの間に入って、キャッシュしたコンテンツを返すことがある。
その意味では、リバースプロキシ的な動きをすることがある。

でもCDNは配信高速化が主目的なんだね。

リバースプロキシはサーバー前面の中継・保護・振り分け。
CDNはコンテンツ配信の高速化や負荷軽減が主目的、と考えるといいよ。

プロキシサーバーの注意点

プロキシサーバーを使うときの注意点はこんな感じだよ。

注意点内容
設定ミスに注意通信できなくなったり、意図しない公開につながる
ログ管理に注意利用者のアクセス情報を扱うため、適切な管理が必要
キャッシュの古さ古い情報を返してしまう場合がある
単一障害点プロキシが止まると、通信全体に影響することがある
セキュリティ設定誰でも使えるプロキシにすると、悪用される可能性がある

便利だけど、設定を間違えると危ないんだね。

そう。
特に外部から誰でも使えるプロキシになってしまうと、悪用される危険があるよ。

よくある誤解

誤解1:プロキシサーバーは全部匿名化のため

プロキシって、匿名化のために使うものじゃないの?

匿名化に使われることもあるけど、それだけじゃないよ。
企業ではアクセス制御やログ管理、Webサービスでは負荷分散やサーバー保護などにも使われる。

誤解2:フォワードプロキシとリバースプロキシは同じ

中継する点は同じ。
でも、誰の代理をするかが違うよ。

フォワードプロキシ:利用者の代理
リバースプロキシ:サーバーの代理

誤解3:リバースプロキシを置けば必ず安全

安全性は上げられるけど、それだけで完璧ではないよ。
設定ミスがあれば危ないし、アプリ側の脆弱性対策も必要。
WAF、認証、アクセス制御、ログ監視などと組み合わせることが大事。

試験で迷ったときの判断ポイント

試験で出たら、どう見分ければいい?

このキーワードを見るといいよ。

キーワード関係するもの
利用者の代理フォワードプロキシ
社内から外部Webサイトへフォワードプロキシ
アクセス制限・ログ管理フォワードプロキシ
サーバーの代理リバースプロキシ
外部からWebサーバーへリバースプロキシ
負荷分散・SSL/TLS終端・サーバー保護リバースプロキシ

どっちの代理かを見ればいいんだったね。

そう。
迷ったらまず、

利用者側? サーバー側?

を見るといいよ。

まとめ

プロキシサーバーとは、
通信の間に入って、利用者やサーバーの代わりにやり取りするサーバーのことだよ。

種類一言でいうと主な目的
フォワードプロキシ利用者側の代理アクセス制御、ログ管理、匿名化、キャッシュ
リバースプロキシサーバー側の代理サーバー保護、負荷分散、SSL/TLS終端、キャッシュ

フォワードプロキシは利用者の前にいて、リバースプロキシはサーバーの前にいるんだね。

そのとおり
初心者向けに一言でまとめるなら、

プロキシサーバーは通信の代理人。フォワードは利用者の代理、リバースはサーバーの代理。

だね。

ABOUT ME
クマノくらげ
クマノくらげ
難しいIT用語やビジネス用語を、できるだけ身近な例えで解説するブログです。 「専門用語を見ると眠くなる人」でも読めるように、画像や会話形式を多めにしています。 AWS12冠達成済み。
記事URLをコピーしました