先に要点
- いちばんの違いは 「誰の代理か」。フォワードプロキシは利用者(クライアント)側の代理、リバースプロキシはサーバー側の代理です。同じプロキシでも 立ち位置が逆です。
- フォワードプロキシは 利用者の前に立つ。社内から外部への出口をまとめ、アクセス制御・ログ集約・キャッシュ・匿名化に使います。隠すのは クライアント側の身元。
- リバースプロキシは サーバーの前に立つ。外から来たリクエストを受けて内部アプリへ渡し、TLS終端・負荷分散・キャッシュ・振り分けをまとめます。隠すのは サーバー側の構成。
- 見分け方はシンプルで、「利用者を守る/制御するため」ならフォワード、「サーバーを守る/さばくため」ならリバース。矢印の向きではなく「誰のために立っているか」で判断します。
- 両者は排他ではなく、社内の出口にフォワード、公開サービスの入口にリバースと、別々の場所で同時に使われるのが普通です。
どっちも「プロキシ」だけど、何が違うの? ── フォワードプロキシとリバースプロキシは名前が似ていて、図で見ると「間に立って中継する」点も同じなので混同しがちです。でも役割はほぼ正反対で、ここを取り違えると設計や障害切り分けがちぐはぐになります。
この記事では、両者の違いを 「誰の代理か」という一点 → それぞれの役割と使いどころ → 見分け方 → 実務での使い分けの順で整理します。定義はMDNのProxy servers解説を確認しながらまとめています。リバースプロキシそのものをもっと深く知りたい場合は逆プロキシとは?NginxやCDNが前段で何をしているのかもあわせてどうぞ。
そもそもプロキシとは(代理)
プロキシ(proxy)は「代理」という意味で、通信を直接やり取りせず、間に立って中継する仕組みです。利用者とサーバーの間に1つ挟むことで、その中継地点で アクセス制御・ログ取得・キャッシュ・暗号化の処理などをまとめられます。
ポイントは、「間に立つ」こと自体はどちらも同じで、違うのは どちら側のために立っているかです。ここを押さえると、フォワードとリバースの区別が一気に楽になります。
いちばんの違い:誰の代理か(クライアント側 vs サーバー側)
MDNは、フォワードプロキシを「クライアント(要求する側)の代理として動作する」もの、リバースプロキシを「その逆を行う=サーバーの代理として動作する」ものと定義しています。つまり 立っている向きが正反対です。
- フォワードプロキシ ── クライアントの前(出口)に立つ。利用者が「自分の代わりに外部へ取りに行ってもらう」代理。外から見えるのはプロキシのIPで、利用者(クライアント)の身元が隠れる。
- リバースプロキシ ── サーバーの前(入口)に立つ。サーバーが「自分の代わりに外部からのリクエストを受けてもらう」代理。利用者から見えるのはプロキシで、内部のサーバー構成が隠れる。
覚え方は、フォワードプロキシ=利用者側の代理、逆プロキシ(リバースプロキシ)=サーバー側の代理。「フォワード=前へ(利用者が外へ出ていく方向)」「リバース=逆向き(外から中へ入ってくるのを受ける)」とイメージすると混ざりにくくなります。
フォワードプロキシとリバースプロキシの比較表
| 観点 | フォワードプロキシ | リバースプロキシ |
|---|---|---|
| 誰の代理か | クライアント(利用者)側 | サーバー側 |
| 立つ場所 | 利用者の出口(社内LANの外向き) | サーバーの入口(公開サービスの前段) |
| 隠すもの | クライアントの身元(IP) | 内部サーバーの構成 |
| 主な目的 | アクセス制御・ログ集約・キャッシュ・匿名化 | TLS終端・負荷分散・キャッシュ・振り分け・保護 |
| 誰が設置するか | 利用者側の組織(会社・学校など) | サービス提供者側 |
| 利用者は存在を知っているか | 知っている(設定して使う)ことが多い | 気づかないことが多い(1つのサイトに見える) |
| 代表例 | 社内プロキシ、フィルタリング、Tor | Nginx / Apache / CDN / ロードバランサー前段 |
フォワードプロキシの役割と使いどころ
フォワードプロキシは 利用者側の組織が、外へ出ていく通信をまとめて管理するために置きます。社内ネットワークの「出口」に1つ構えるイメージです。
業務に関係ないサイトへの接続をブロック/許可する。学校や企業のフィルタリングが典型。
ログの集中管理
誰がどこへアクセスしたかを出口でまとめて記録。監査やインシデント調査に使う。
要は、フォワードプロキシの主役は 「利用者(の集団)」です。守り・制御したい対象がクライアント側なら、それはフォワードプロキシの仕事です。
リバースプロキシの役割と使いどころ
リバースプロキシは サービス提供者側が、公開サーバーの前段でリクエストを受けさばくために置きます。利用者からは1つのサイトに見えますが、その裏で振り分けや保護をしています。
負荷分散
複数のアプリサーバーへリクエストを分散する。ロードバランサー的な役割を兼ねることも多い。
振り分け・保護
パスやドメインで複数アプリへ振り分け、内部構成を隠す。攻撃を前段で受け止める盾にもなる。
主役は 「サーバー(側の提供者)」です。Nginx、Apache、CDNを前段に置くのは、まさにこのリバースプロキシの役割を担わせるためです。詳しくは逆プロキシとは?NginxやCDNが前段で何をしているのかで扱っています。
混同しやすいポイントと見分け方
「どっちも間に立って中継するなら同じでは?」と感じたときの、実用的な見分け方を整理します。
最短の判断は 「誰のために立っているか」です。矢印の向きや設置位置の図だけで覚えようとすると混乱します。クライアントを守る/制御するならフォワード、サーバーを守る/さばくならリバース、と目的で切り分けるのが確実です。
実務での使い分け(両方使うのが普通)
両者は「どちらか一方を選ぶ」ものではありません。役割が違うので、別々の場所で同時に使われるのが普通です。
たとえば「社内から自社の公開Webサービスにアクセスする」通信は、社内のフォワードプロキシを通って外へ出て、公開側のリバースプロキシで受けられて内部アプリに届く、というように両方を経由することもあります。設計や障害調査では、いま見ているプロキシが「利用者側」なのか「サーバー側」なのかをまず確認すると、切り分けがぶれません。
フォワードプロキシとリバースプロキシに関するよくある質問
フォワードプロキシとリバースプロキシの一番の違いは何ですか?
「誰の代理か」です。フォワードプロキシはクライアント(利用者)側の代理で、外部サーバーからは利用者のIPが隠れます。リバースプロキシはサーバー側の代理で、利用者からは内部のサーバー構成が隠れます。同じプロキシでも立ち位置が正反対です。
見た目はどちらも「間に立つ中継」ですが、どう区別しますか?
中継する点は同じなので、「誰のために立っているか(目的)」で区別します。外部アクセスの制御・フィルタ・匿名化など利用者を管理する目的ならフォワード、TLS終端・負荷分散・キャッシュなどサーバーをさばく目的ならリバースです。
リバースプロキシはロードバランサーと同じですか?
重なりますが同じではありません。リバースプロキシは「前段で受けて中継する」役割の総称で、その機能の一つとして負荷分散(ロードバランサー)を担うことが多い、という関係です。負荷分散だけを専門にする製品もあります。
フォワードプロキシは利用者が意識して使いますか?
多くの場合、利用者側でプロキシ設定を入れて使います(社内PCにプロキシ設定が配布されるなど)。一方リバースプロキシは、利用者は存在に気づかず、単に1つのサイトにアクセスしているように見えるのが普通です。
VPNとフォワードプロキシは何が違いますか?
どちらも通信を経由させて出口を変えますが、VPNは通信全体を暗号化してトンネルするのに対し、フォワードプロキシは主にHTTPなど特定のアプリ通信を中継します。範囲と暗号化の扱いが異なります。
両方を同時に使うことはありますか?
あります。社内の出口にフォワードプロキシ、公開サービスの入口にリバースプロキシ、というように別々の場所で同時に使われるのが一般的です。1本の通信が両方を経由することもあります。
まとめ
フォワードプロキシとリバースプロキシは、名前も見た目も似ていますが、「誰の代理か」で正反対です。フォワードプロキシは利用者側の代理で、外部アクセスの制御・ログ・匿名化のために利用者の出口に立ちます。リバースプロキシはサーバー側の代理で、TLS終端・負荷分散・キャッシュのためにサーバーの入口に立ちます。迷ったら矢印ではなく 「誰のために立っているか」で判断すれば間違えません。両者は排他ではなく、実務では別々の場所で同時に活躍します。
参考リンク
- MDN: Proxy servers and tunneling(フォワード/リバースプロキシの定義)
- 逆プロキシの深掘り: 逆プロキシとは?NginxやCDNが前段で何をしているのか
- 用語集: フォワードプロキシ / 逆プロキシ