ネットワークの学習やWebシステムのインフラ設計をしていると、必ず登場するのが 「フォワードプロキシ(Forward Proxyproxy [プロキシ]クライアントとサーバーの間に立って通信を中継するサーバー)」 と 「リバースプロキシ(Reverse Proxy)」 という2つのプロキシサーバーです。
どちらも「通信を中継するサーバー(代理人)」である点は共通していますが、
- 「どっちがクライアント側にあって、どっちがサーバー側にあるの?」
- 「社内セキュリティを守るプロキシと、Webサイトを高速化するプロキシの違いは?」
- 「ロードバランサーやWAF、CDNCDN [シーディーエヌ]Content Delivery Network。コンテンツを高速配信するネットワークとリバースプロキシは何が違うの?」
- 「基本情報技術者試験や実務のインフラ構築で迷わない覚え方を知りたい!」
といった疑問を持つ方は非常に多いのではないでしょうか。
本記事では、フォワードプロキシとリバースプロキシの根本的な違いを、身近な日常の例え(個人輸入代行と芸能事務所マネージャーなど)やわかりやすい図解、エンジニア向けの実践的な技術解説(X-Forwarded-ForヘッダーやSSLSSL [エスエスエル]Secure Sockets Layer。インターネット上の通信を暗号化して盗聴を防ぐプロトコル(現在はTLSに移行)終端など)を交えて徹底的に解説します。
この記事のポイント
- プロキシ(Proxy) とは英語で 「代理・身代わり」 のこと
- フォワードプロキシ:「クライアント(端末)側」 の代理人。インターネットへ出ていく通信を中継し、クライアントのIPIP [アイピー]Internet Protocol。インターネット通信の基本プロトコル秘匿や社内アクセス制限(フィルタリング)を行う
- リバースプロキシ:「サーバー(Webサービス)側」 の代理人。外部から届くリクエストを中継し、Webサーバーの負荷分散・保護・SSL終端・高速化を行う
- 「どちらの立場に立って中継しているか」 さえ押さえれば、役割や仕組みは一発で区別できる
フォワードプロキシとリバースプロキシの根本的な違い【一目でわかる比較表】
フォワードプロキシとリバースプロキシの最も本質的な違いは、「誰(どちら側)の代理人として通信を中継しているか」 という点にあります。
【フォワードプロキシの配置:クライアント側の代理】 [ クライアント端末 ] │ ▼ [ フォワードプロキシ ] ──▶ ( インターネット ) ──▶ [ Webサーバー ] (社内LAN・出口に設置) (外部のWebサイト)
──────────────────────────────────────────────────────────
【リバースプロキシの配置:サーバー側の代理】 [ クライアント端末 ] ──▶ ( インターネット ) ──▶ [ リバースプロキシ ] (一般の閲覧者) │ (Webサイトの入口に設置) ├─▶ [ Webサーバー① ] ├─▶ [ Webサーバー② ] └─▶ [ Webサーバー③ ]フォワードプロキシとリバースプロキシの詳細比較表
| 比較項目 | フォワードプロキシ(Forward Proxy) | リバースプロキシ(Reverse Proxy) |
|---|---|---|
| 代理の対象 | クライアント(利用者・端末) | サーバー(Webサービス・システム) |
| 設置場所 | クライアント側のネットワーク内部(社内LANLAN [ラン]Local Area Network。家庭やオフィスなど限られた範囲のネットワークの出口など) | Webサーバー側のネットワーク前段(データセンター/クラウドの入口) |
| 外部から見えるIP | プロキシサーバーのIP(適切に構成した場合) | プロキシサーバーのIP(適切に構成した場合) |
| 通信の流れ | クライアント ➔ プロキシ ➔ インターネット ➔ サーバー | クライアント ➔ インターネット ➔ プロキシ ➔ サーバー |
| 主な目的 | ・クライアントのプライバシー保護 ・有害サイトの閲覧ブロック ・社内からの通信ログ監査 ・社内通信の高速化(キャッシュ) | ・Webサーバーの負荷分散(ロードバランシング) ・Webサーバーのセキュリティ保護(WAF/DDoSDDoS [ディードス]Distributed Denial of Service。分散型サービス妨害攻撃対策) ・SSL/TLSTLS [ティーエルエス]Transport Layer Security。SSLの後継となる安全性の高い暗号化通信プロトコル暗号化の集約(SSL終端) ・コンテンツ配信の高速化(静的キャッシュ) |
| 利用者の意識 | クライアント側でプロキシ設定が必要(透過型を除く) | クライアントはリバースプロキシを意識せず、通常のWebサイトとしてアクセス |
| 代表的な製品・サービスの例 | Squid, ApacheApache [アパッチ]世界中で広く利用されているオープンソースのWebサーバーソフトウェア Traffic Server, Zscaler など | Nginx, Envoy, HAProxy, AWSAWS [エーダブリュエス]Amazon Web Services。Amazonのクラウドサービス ALB, CloudFront, Cloudflare など |
身近な例えで直感理解!プロキシのイメージ
「フォワード」と「リバース」という言葉だけではピンとこない方のために、日常生活の2つの例えでイメージを掴んでみましょう。
例①:個人輸入代行業者(フォワード) vs 芸能人のマネージャー(リバース)
【個人輸入代行業者(フォワードプロキシ)】 あなた(買い手) ──▶ [ 輸入代行業者 ] ──▶ 海外のショップ 「代わりに海外ショップから商品を買ってきて!」 ※あくまで「代理人が外部との窓口になる」というイメージです。
【芸能人のマネージャー(リバースプロキシ)】 ファン・マスコミ ──▶ [ マネージャー ] ──▶ 芸能人(タレント) 「取材や出演のオファーを取り次ぐよ!怪しい人はここでブロック!」 ※芸能人本人の私用連絡先や自宅住所(サーバーの内部IP)は非公開のままです。- フォワードプロキシ = 個人輸入代行業者 あなたが海外のショップから買い物をするとき、直接連絡するのではなく代行業者に依頼します。代行業者があなたの代わりに商品を購入するため、海外ショップ側には「代行業者が買った」としか見えず、あなたの個人情報は隠されます。
- リバースプロキシ = 芸能人のマネージャー 人気タレントへの出演依頼やファンレターは、タレント本人に直接届くのではなく、事務所のマネージャーがすべて窓口となって受け取ります。マネージャーがスケジュールの空いているタレントへ仕事を振り分けたり、悪質なファンをブロックしたりします。
例②:会社の「秘書」の2つの役割
オフィスの秘書さんの仕事に例えることもできます。
- フォワードプロキシ的な働き: 社内の社員が「外部の専門書を取り寄せてほしい」と秘書に依頼し、秘書が社外の書店に一括で注文する(社員の代わりに外に出ていく)。
- リバースプロキシ的な働き: 社外の顧客から「御社の製品について相談したい」と代表電話にかかってきたとき、秘書が内容を聞いて適切な部署(営業部・技術部・サポート部)に電話を転送する(外からの依頼を内部へ取り次ぐ)。
フォワードプロキシ(Forward Proxy)の仕組みと4大メリット
フォワードプロキシは、クライアント(ユーザー端末)がインターネット上のサーバーへアクセスする際、その間に立って通信を中継するサーバーです。
企業のネットワーク設定やブラウザ設定などで単に「プロキシサーバー」と呼ぶ場合、多くはこのフォワードプロキシを指しています(ただし、Webサーバー構築などの文脈ではリバースプロキシを指すことも多いため注意が必要です)。
【フォワードプロキシの通信の流れ】 [ 社内PC ] ──① 社外サイトへのリクエスト──▶ [ フォワードプロキシ ] │ │ ② 危険サイトでないかチェック │ ③ キャッシュがあれば即座に返却 ▼ [ 社内PC ] ◀──④ 目的のWebサイトを表示 ◀─── ( インターネット )1. クライアントの匿名化(プライバシー保護 / IP秘匿)
Webサイトにアクセスする際、Webサーバー側に記録される接続元IPアドレスは「フォワードプロキシのIP」になります。これにより、Webサーバーからはクライアント端末のグローバルIPアドレスではなく、フォワードプロキシのIPアドレスが接続元として見えるようになり、IPアドレスをもとにした位置情報の推定を困難にする場合があります。
2. Webフィルタリング・アクセス制限(企業のセキュリティ対策)
企業の社内ネットワークでは、従業員の端末が直接インターネットへ接続することを禁止し、必ずフォワードプロキシを経由させる構成が広く採用されています。
- 有害サイト・危険なURLURL [ユーアールエル]Uniform Resource Locator。Webページのアドレスのブロック:マルウェア感染サイトやフィッシング詐欺サイトへのアクセスを遮断
- 業務外サイトの制限:SNSや動画配信サイト、ショッピングサイトへのアクセスを制御
- 情報漏洩の防止:許可されていないクラウドストレージやファイル共有サービスへのアップロードを遮断
3. キャッシュによる通信高速化とネットワーク帯域の削減
フォワードプロキシは、社内の誰かが一度閲覧したWebページのデータ(画像やHTMLHTML [エイチティーエムエル]HyperText Markup Language。Webページの構造を記述する言語など)を一時的に保存(キャッシュ)しておきます。 キャッシュ可能なコンテンツについては、別の社員が同じページにアクセスした際にインターネットへ通信し直すことなくプロキシ内のキャッシュからデータを返すため、Webページの表示速度が向上し、会社のインターネット回線の帯域を節約できる場合があります。
4. アクセスログの一元管理・内部統制
「誰が・いつ・どのWebサイトにアクセスしたか」「どんなファイルをダウンロードしたか」というアクセスログをフォワードプロキシで集約して記録できます。万が一インシデント(ウイルス感染や情報漏洩)が発生した際の調査や、社内のコンプライアンス遵守(内部統制)に役立ちます。
リバースプロキシ(Reverse Proxy)の仕組みと5大メリット
リバースプロキシは、Webサーバー群の前に配置され、インターネット上の不特定多数のクライアントから送られてくるリクエストをWebサーバーの代わりに受け取り、適切なバックエンドサーバーへ中継する仕組みです。
モダンなWebサービスやクラウドアーキテクチャでは、リバースプロキシが広く活用されています。
【リバースプロキシの通信の流れ】 [ リバースプロキシ ] (SSL終端・WAF・キャッシュ) │ ┌──────────────────┼──────────────────┐ ▼ ▼ ▼[ WebサーバーA ] [ WebサーバーB ] [ WebサーバーC ](ポート: 8080) (ポート: 8080) (ポート: 8080)1. 負荷分散(ロードバランシング)
Webサイトへのアクセス数が膨大になると、1台のサーバーだけでは処理しきれなくなります。 リバースプロキシを前段に置くことで、届いた大量のリクエストを背後にある複数のWebサーバー(サーバーA、B、C)へ均等に、またはCPUCPU [シーピーユー]Central Processing Unit。コンピュータの頭脳となる中央演算処理装置使用率に応じて振り分け(ラウンドロビンや最小接続数アルゴリズムなど)、システム全体の高可用性とスケーラビリティを確保します。
2. セキュリティ向上とWebサーバーの直接攻撃防止
適切に構成すれば、外部から直接公開するWebサーバーのIPアドレスを隠し、リバースプロキシを公開窓口にできます。
- バックエンドサーバーのIPアドレス隠蔽:実際のデータベースやアプリケーションサーバーはプライベートネットワーク内に安全に配置できる
- DDoS攻撃の緩和:大量の不正リクエストをリバースプロキシで吸収・遮断
- WAF(Web Application Firewallfirewall [ファイアウォール]ネットワークトラフィックを監視・制御するセキュリティシステム)連携:SQLSQL [エスキューエル / シークエル]Structured Query Language。関係データベース(RDB)の管理や操作を行うデータベース言語インジェクションやクロスサイトスクリプティング(XSSXSS [クロスサイトスクリプティング / エックスエスエス]Cross-Site Scripting。Webサイトに悪意あるスクリプトを埋め込む攻撃)などの攻撃パターンを検知し、Webサーバーに届く前に遮断
3. SSL/TLS暗号化の集約・オフロード(SSL終端)
HTTPSHTTPS [エイチティーティーピーエス]HTTP Secure。暗号化されたHTTP通信に必要なSSL/TLS暗号化・復号処理は、サーバーのCPUに一定の負荷をかけます。 リバースプロキシでTLSを終端し、バックエンドとはHTTPHTTP [エイチティーティーピー]HyperText Transfer Protocol。Webでのデータ転送プロトコルで通信する構成にすることで、バックエンドサーバーの負荷を軽減できます。また、セキュリティ要件に応じて、リバースプロキシからバックエンドまで再度HTTPSで暗号化する構成もあります。クライアントとのTLS終端をリバースプロキシに集約することで、公開側のSSL/TLS証明書の更新や管理を一元化できます。
4. 静的コンテンツのキャッシング・高速配信
CSSCSS [シーエスエス]Cascading Style Sheets。Webページのデザインを記述する言語、JavaScript、画像、動画などの静的ファイルは、背後のWebサーバー(Node.jsやRails、PHPなど)に毎回問い合わせる必要がありません。リバースプロキシがメモリやディスク上にキャッシュして直接クライアントへ高速配信することで、Webサイトの表示速度を劇的に高速化します。
5. URLルーティング・マイクロサービス連携
リクエストされたURLのパスに応じて、転送先のサーバーを切り替えることができます。
https://example.com/api/*➔ GoGo [ゴー]Google開発のシンプルで高速な言語言語のAPIAPI [エーピーアイ]Application Programming Interface。異なるソフトウェア間の接続口サーバーへ転送https://example.com/blog/*➔ WordPressサーバーへ転送https://example.com/*➔ ReactReact [リアクト]Meta開発のUIライブラリ/Next.jsNext.js [ネクストジェーエス]React製のフルスタックWebフレームワークのフロントエンドサーバーへ転送
このように、マイクロサービスアーキテクチャにおけるAPIゲートウェイやルーティングハブとしてもリバースプロキシは中心的な役割を果たします。
【実践・エンジニア向け】プロキシをめぐる重要技術トピック
インフラ設計やWeb開発の実務で必ず直面する、プロキシ関連の最重要技術トピックを深掘りします。
① クライアントIPの伝達問題(X-Forwarded-For ヘッダー)
リバースプロキシを導入すると、バックエンドのWebサーバーから見た接続元IPアドレスは「リバースプロキシのIP」になってしまいます。そのため、そのままでは「本当のユーザーがどこからアクセスしてきたのか」が分からなくなります。
これを解決するのが、HTTPリクエストヘッダーの X-Forwarded-For(XFF) や標準仕様の Forwarded ヘッダーです。
GET /index.html HTTP/1.1Host: example.comX-Forwarded-For: 203.0.113.195X-Forwarded-Proto: httpsX-Forwarded-Host: example.com【X-Forwarded-For の仕組み】 [ クライアント (203.0.113.195) ] │ ▼ [ リバースプロキシ (198.51.100.10) ] ──▶ X-Forwarded-For: 203.0.113.195 を付与 │ ▼ [ バックエンドWebサーバー ] ───────────▶ ヘッダーから元のクライアントIPを特定可能!セキュリティ上の注意点:IPスプーフィング(偽装)
悪意のあるユーザーが意図的に偽の X-Forwarded-For: 127.0.0.1 を付与してリクエストを送ってくる可能性があります。
そのため、Webサーバーやリバースプロキシの設定では、「信頼できるプロキシ(Trusted Proxies)から受け取ったヘッダーのみを信用し、それ以外は上書き・追記する」 という設定を正しく行う必要があります。
② HTTPS通信の扱い方の違い(CONNECTメソッド vs SSL終端)
HTTPS(暗号化通信)が主流の現代において、フォワードプロキシとリバースプロキシでは暗号化の扱い方が根本的に異なります。
【HTTPS通信におけるフォワードプロキシ:CONNECTによるトンネリング】 クライアント ──( CONNECT host:443 )──▶ プロキシ ──( TCP接続 )──▶ 外部サーバー クライアント ══════════( エンドツーエンドで暗号化 )══════════▶ 外部サーバー ※通常のCONNECTによるトンネルでは、プロキシはTLS通信の内容を復号せず、その通信をトンネルとして中継します。
【リバースプロキシ:SSL終端(SSL Termination)】 クライアント ══════════( HTTPS 暗号化通信 )══════════▶ リバースプロキシ (SSL復号) │ ( HTTP 平文通信 ) ▼ バックエンドサーバー- フォワードプロキシ:
クライアントはプロキシに対して
HTTP CONNECTメソッドを発行し、プロキシは暗号化されたTCPTCP [ティーシーピー]Transmission Control Protocol。信頼性の高い通信プロトコルストリームをそのまま中継します(トンネリング)。 ※高度なセキュリティ製品(SSLフォワーディング/復号プロキシ)では、プロキシに専用のルート証明書を配布して通信を一時的に復号し、ウイルスチェックを行う場合もあります。 - リバースプロキシ: リバースプロキシ自身がドメインのSSL証明書を保持し、クライアントとのSSLハンドシェイクを完了させます(SSL終端)。
③ リバースプロキシとCDN・ロードバランサー・WAFの関係性
実務では「CDN」「ロードバランサー」「WAF」「リバースプロキシ」という言葉が飛び交い、混同されがちです。これらは対立するものではなく、「CDN、ロードバランサー、WAFはリバースプロキシと密接に関係する技術・サービス」 と捉えるとスッキリ整理できます。
【リバースプロキシと密接に関係する技術・サービス】 ┌────────────────┬────────────────────────────┬───────────────┐ │ 負荷分散に特化 │ 世界分散キャッシュに特化 │ セキュリティに特化 │ │ ロードバランサー│ CDN │ WAF │ │ (AWS ALBなど) │ (Cloudflare / CloudFrontなど)│ (AWS WAFなど) │ └────────────────┴────────────────────────────┴───────────────┘- L7ロードバランサー:リバースプロキシとして動作し、リクエストを複数のバックエンドへ振り分ける代表例です。
- CDN(Content Delivery Network):世界各地のエッジサーバーに配置された大規模なインフラです。リバースプロキシとして動作することが多いですが、厳密にはDNSDNS [ディーエヌエス]Domain Name System。インターネット上のドメイン名とIPアドレスを紐付けて管理・変換するシステムベースのルーティングや独自のキャッシュ階層など、より広範なインフラ機能を内包しています。
- WAF(Web Application Firewall):Webアプリケーションへの攻撃を検知・ブロックするセキュリティ機能であり、リバースプロキシとは役割が異なります。WAFをリバースプロキシ型で提供する構成も多く存在します。
フォワードプロキシとリバースプロキシに関するよくある質問(FAQ)
Q1. 単に「プロキシ(Proxy)」と言ったらどちらのこと?
A. 場面や文脈によって異なります。
- オフィスのPC設定やブラウザ設定で「プロキシ設定」と書かれている場合は、基本的に フォワードプロキシ を指します。
- 一方、Webサーバー構築やミドルウェア(NginxNginx [エンジンエックス]高性能なWebサーバー・リバースプロキシやHAProxyなど)、インフラ設計の文脈で「プロキシ」と言う場合は、リバースプロキシ を指しているケースが非常に多いです。
Q2. 透過型プロキシ(Transparent Proxy)とは何ですか?
A. クライアント側のブラウザやOSOS [オーエス]Operating System。基本ソフトウェアに明示的な設定を行わなくても、ネットワーク機器(ルーターやゲートウェイ)が自動的に通信をプロキシへリダイレクトする仕組みです。
通常のフォワードプロキシはクライアント端末ごとに「プロキシのアドレスとポート番号」を設定する必要がありますが、透過型プロキシ(トランスペアレントプロキシ)を使えば、管理者が個別の端末を設定する手間を省き、社内の対象となるWeb通信などを、クライアント側で明示的なプロキシ設定を行わなくてもプロキシ経由にできます。
Q3. VPNとフォワードプロキシの違いは?
A. 対象とする「ネットワーク階層(レイヤー)」と「暗号化の範囲」が異なります。
| 項目 | フォワードプロキシ | VPNVPN [ブイピーエヌ]Virtual Private Network。仮想的な専用ネットワーク(Virtual Private Network) |
|---|---|---|
| 主な役割 | 特定のアプリケーション通信を代理 | ネットワーク間・端末間の通信をトンネル化・保護 |
| 影響範囲 | 設定したアプリケーションなど | VPN構成に応じて端末・ネットワーク単位 |
| 主な用途 | Webアクセス制御・監査など | 拠点間接続・リモートアクセスなど |
Q4. 1つの通信で両方のプロキシを経由することはある?
A. はい、日常的に非常によくあります。
例えば、あなたが会社のPCからYahoo! JAPANやGoogleにアクセスする場合、以下のような通信経路になります。
[ あなたの社内PC ] │ ▼ (社内LAN)[ 社内のフォワードプロキシ ] ──▶ クライアント側の代理(IP秘匿・監査) │ ▼ (インターネット)[ サービスのCDN / リバースプロキシ ] ──▶ サーバー側の代理(SSL終端・負荷分散) │ ▼ (内部ネットワーク)[ サービスのバックエンドWebサーバー ]このように、クライアント側とサーバー側の双方がそれぞれの目的でプロキシを設置しており、1つのリクエストで両方を通過するのはWebの日常的な通信フローです。
Q5. 基本情報技術者試験やネットワーク試験での出題ポイントは?
A. 主に以下の3点が頻出です。
- プロキシの種類の判別:「社内LANからインターネットへのアクセスを中継・制限するものはどれか?(➔ フォワードプロキシ)」、「外部からのアクセスを複数のWebサーバーに分散するものはどれか?(➔ リバースプロキシ)」
- DMZ(非武装地帯)での配置場所:典型的なオンプレミス構成では、インターネットに公開するリバースプロキシをDMZに配置し、バックエンドサーバーを内部ネットワークに配置する設計があります。
- HTTPヘッダーの役割:中継時にクライアントの元IPを記録する
X-Forwarded-Forヘッダーの目的。
まとめ:フォワードプロキシとリバースプロキシの違い総復習
フォワードプロキシとリバースプロキシは、どちらも通信を中継する重要な技術ですが、「クライアントのために働くか」「サーバーのために働くか」 という立ち位置が正反対です。
最後に、重要ポイントをチェックリストでおさらいしましょう。
今回のまとめチェックリスト
- フォワードプロキシ は 「クライアント(端末)側」 の代理人
- フォワードプロキシの目的は 「クライアントのIP秘匿」「Web閲覧制限」「社内ログ監査」「帯域節約」
- リバースプロキシ は 「サーバー(Webサービス)側」 の代理人
- リバースプロキシの目的は 「負荷分散(ロードバランシング)」「WAF/セキュリティ」「SSL終端」「静的キャッシュ」
- リバースプロキシ背後のサーバーでクライアントIPを取得するには
X-Forwarded-Forヘッダーを使う - L7ロードバランサーやCDN はリバースプロキシと密接に関係し、リバースプロキシとして動作することが多い
それぞれの特徴と役割を正しく理解し、安全な社内ネットワーク運用や信頼性の高いWebシステム構築に役立ててください!
以上で本記事の解説を終わります。
よいITライフを!
人気記事
- 1
- 2
- 3
- 4
- 5
思考の整理というテーマを、実務ですぐに使える具体的な「技術」として落とし込んだ一冊です。