コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB
プロキシとリバースプロキシ
プロキシとリバースプロキシ
このレッスンで分かること
- プロキシは通信を中継するサーバーで、立つ位置でフォワード (クライアント側) とリバース (サーバー側) に分かれます
- リバースプロキシは LB・CDN・API ゲートウェイ・サービスメッシュとして現代 Web 基盤の至るところに登場
- 「とりあえず前段に Nginx」は冗長に見えて、TLS 終端・ログ・キャッシュ・将来の LB 拡張の入口を確保する王道
プロキシとリバースプロキシ とは
フォワードプロキシとリバースプロキシの違い・役割を学びます。本レッスンでは、プロキシとリバースプロキシ の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
フォワード vs リバースプロキシを 1 行で
- フォワードプロキシ = クライアントの代理 で外部にアクセス (社内 LAN → インターネット)
- リバースプロキシ = サーバーの代理 でリクエストを受ける (インターネット → 内部サーバー群)
立つ位置と「守りたい側」が逆になっているだけ、と覚えれば混乱しません。
プロキシ系の機能比較
| 形態 | 立つ位置 | 主な役割 | 代表ソフト |
|---|---|---|---|
| フォワードプロキシ | クライアント側 | アクセス制御、ログ、匿名化 | Squid, Charles, Burp |
| リバースプロキシ | サーバー側 | LB, TLS 終端, キャッシュ, WAF | Nginx, Envoy, Traefik, Caddy |
| API ゲートウェイ | サーバー側 | 認証, レート制限, ルーティング | AWS API Gateway, Kong, Apigee |
| サイドカープロキシ | 各サービス脇 | mTLS, 可観測性, リトライ | Envoy (Istio, Linkerd) |
| CDN | サーバー側 (分散) | エッジキャッシュ + LB + WAF | Cloudflare, Akamai, CloudFront |
このレッスンで学ぶこと
通信を中継するプロキシの 2 つの形 — フォワードプロキシとリバースプロキシ — の違いと役割を整理します。Web 基盤の至るところに登場する重要概念です。
プロキシとは
プロキシ (Proxy) は、クライアントとサーバーの間に立ち、通信を中継するサーバーです。「代理」と訳されることもあります。
中継することで、下記のような機能を実現できます。
- アクセス制御 / 認証
- キャッシュ
- 通信内容の検査・ログ取得
- 匿名性 (送信元の隠蔽)
- プロトコル変換
立つ位置がクライアント側かサーバー側かで「フォワード」「リバース」と呼び分けます。
フォワードプロキシ
フォワードプロキシは、クライアント側のネットワークに立つプロキシです。クライアントの代わりにインターネットへアクセスします。
プレーンテキスト
[クライアント] → [Forward Proxy] → [インターネット]主な用途は次のとおりです。
- 社内 LAN からのインターネットアクセス制御 (URL フィルタリング、DLP)
- ログ取得・監査
- 子供向けや学校での有害サイトブロック
- プライバシー保護 (送信元 IP の隠蔽)
- 海外サービスの地域制限回避 (賛否あり)
ブラウザの設定で「HTTP プロキシ」を指定すると、それ以降のリクエストが指定プロキシ経由になります。
リバースプロキシ
リバースプロキシは、サーバー側に立つプロキシです。インターネット側から見るとリバースプロキシが「サーバー本体」のように見え、内部の実サーバー (オリジン) を隠蔽します。
プレーンテキスト
[インターネット] → [Reverse Proxy] → [オリジンサーバー群]主な用途は次のとおりです。
- ロードバランシング (前レッスンの LB は実質リバースプロキシ)
- TLS 終端 (HTTPS の復号をプロキシで集約)
- キャッシング (CDN もある意味リバースプロキシ)
- セキュリティ (WAF / レート制限)
- パスや Host ベースのルーティング (パスごとに違うバックエンドへ)
- 圧縮・画像変換などの加工
代表的なソフトウェアは Nginx、Apache、HAProxy、Envoy、Traefik、Caddy など。Cloudflare のような CDN も巨大なリバースプロキシとして機能します。
フォワードとリバースの違いを 1 文で
フォワードプロキシは「クライアントの代理」、リバースプロキシは「サーバーの代理」。立つ位置と守りたい側が逆になっているだけ、と覚えると整理しやすいです。
プロキシと CONNECT
HTTPS のフォワードプロキシでは、HTTP の CONNECT メソッドが使われます。クライアントが CONNECT example.com:443 HTTP/1.1 でトンネル開設を依頼し、プロキシは TCP の中継だけ行います。中身は暗号化されているのでプロキシには見えません。
社内の Web フィルタリングでは、CONNECT のホスト名 (SNI) や証明書を見て許可/拒否します。深く検査するなら、プロキシで TLS 復号 (中間者) を行う方式もありますが、これは社員に専用ルート CA を信頼させる必要があり、運用は重いです。
API ゲートウェイ
API 群の前段に立ち、認証・レート制限・ルーティング・キャッシュなどを集約する API ゲートウェイも、本質はリバースプロキシです。AWS API Gateway, Kong, Zuul, Apigee などが代表例。
マイクロサービス構成では、エンドユーザーと内部サービスの間に必ず置くのが定番です。
サイドカープロキシ (サービスメッシュ)
Envoy などをマイクロサービスの脇にサイドカーとして配置し、サービス間通信を全部その経由にする構成。Istio や Linkerd が代表。下記のメリットがあります。
- アプリのコードに変更なしで、可観測性・暗号化・リトライ・サーキットブレーカーを追加できる
- mTLS で内部通信全体を暗号化
- トラフィック制御 (Canary, Blue/Green) を細かく設定できる
「全部に Nginx」の安心感
Web 開発でとりあえず Nginx をリバースプロキシとして前段に置くのは、最初は冗長に見えても、TLS 終端・ログ・キャッシュ・将来のロードバランシングなど、後で追加したくなる機能の入口を確保しておくという意味で実は王道です。
まとめ
このレッスンの要点は、フォワードとリバースの区別 / リバースプロキシの 6 機能 / サービスメッシュ の 3 点です。実務でこれらを切り分けて説明できるようになると、設計レビューや障害対応の精度が一段上がります。
理解度チェック
Q. 次のうち、リバースプロキシの典型用途として 正しくない ものはどれ?
- TLS 終端
- ロードバランシング
- 社員のインターネットアクセスログ取得
- WAF やレート制限
答えを見る
正解は 3。社員のインターネットアクセスログ取得はクライアント側に立つ フォワードプロキシの仕事です。リバースプロキシはサーバー側に立ち、外からの着信トラフィックを制御します。
出典 (References)
- Cloudflare Learning — Reverse Proxy vs Forward Proxy
- NGINX — Reverse Proxy
- Envoy / Istio — Service Mesh
最終更新: 2026-05-28
関連レッスン
よくある質問
Q. フォワードとリバース、実務ではどう使い分けますか?
A. フォワードプロキシは「社内から外への通信を制御したい」場面で使います。社員のインターネットアクセス制限やログ監査が典型です。リバースプロキシは「外からの通信をサーバー側で制御したい」場面で使います。TLS 終端・ロードバランシング・WAF など、サーバー側の横断的な関心事をまとめて担います。
Q. Nginx をとりあえず前段に置く意味はありますか?
A. あります。最初は 1 台構成でも、Nginx をリバースプロキシとして挟んでおくと、TLS 終端・アクセスログ・静的ファイルのキャッシュ・将来のバックエンド増設時のロードバランシングなど、後から追加したくなる機能の入口を最初から確保できます。直接アプリに 443 を向けると、後でこれらを足す際にアーキテクチャの変更が大きくなります。
Q. TLS 終端はどこで行うのが一般的ですか?
A. リバースプロキシ (Nginx、Caddy、Envoy 等) や CDN・ロードバランサーの層で行うのが一般的です。オリジンサーバーまで暗号化を通す「エンドツーエンド TLS」を選ぶ場合もありますが、証明書管理やパフォーマンスのトレードオフがあります。社内ネットワークが信頼できる前提であれば、プロキシ終端でシンプルに済ませることが多いです。
次のレッスン
次は WebSocket とリアルタイム通信 で、フォワードプロキシとリバースプロキシの違い・役割を学びます を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- プロキシ の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. プロキシ とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン
復習ミニクイズ
リバースプロキシの特徴として正しいものはどれですか