【りばーすぷろきしー】

リバースプロキシ とは?

最終更新:
💡 サーバー側の入口で、要求と応答を中継する

サーバー側の入口として要求を受け、別のサーバーへ中継する仕組み。フォワードプロキシとの違い、応答の流れ、TLS終端やキャッシュの条件を解説します。

📌 このページのポイント
リバースプロキシ:サーバー側の中継役利用者(クライアント)要求 ↓応答 ↑リバースプロキシサーバー側の入口で中継要求 ↓応答 ↑バックエンド要求を処理して応答を作る負荷分散・TLS終端・キャッシュは構成による要求が進み、応答が返る。時間は逆転しない
下向きは要求、上向きは応答で枠の境界につなぎました。「逆」は代理する側の違いで、通信方向の反転ではありません。キャッシュの応答経路などは省略しています。
ひよこ ひよこ
リバースプロキシは、何を代理するの?
ペンギン先生 ペンギン先生
サーバー側の入口として、利用者からの要求を受ける。必要な要求をバックエンドのサーバーへ送り、そこで得た応答を利用者へ返す中継役だよ。HTTP仕様ではgatewayとも呼ぶ。
ひよこ ひよこ
フォワードプロキシとは、通信の向きが逆?
ペンギン先生 ペンギン先生
要求と応答の向きが反転するわけではない。フォワードプロキシは主にクライアントが選ぶ中継役、リバースプロキシはサーバー側の入口だ。「どちら側を代理するか」の違いとして考えよう。
ひよこ ひよこ
サーバーを何台も並べないと使えない?
ペンギン先生 ペンギン先生
バックエンドが1台でも使える。複数台へ要求を振り分ける負荷分散を組み合わせることもあるが、それは機能や設定による。リバースプロキシとロードバランサーは、いつも同じ意味ではないよ。
ひよこ ひよこ
HTTPSを入口で処理すれば、奥も暗号化される?
ペンギン先生 ペンギン先生
TLS終端は、その区間の暗号化を入口で終えること。入口からバックエンドまでの通信を暗号化し、証明書を確認するかは別に設定する。利用者側がHTTPSというだけでは、全区間の保護は分からないんだ。
ひよこ ひよこ
置けば速くて安全になる?
ペンギン先生 ペンギン先生
自動的にはならない。キャッシュする内容や期限、利用者ごとに異なる応答の扱い、時間切れや障害時の対応を設計する。バックエンドへ直接届く経路や、中継された利用者情報をどこまで信頼するかも確認するよ。
ひよこ ひよこ
どんな製品が使えるの?
ペンギン先生 ペンギン先生
NGINXなどのWebサーバーは、設定してリバースプロキシとして使える。CDNも中継とキャッシュを使う場合があるが、世界に分散して配信するサービスの目的と、中継役そのものは区別したい。製品名だけで機能や安全性は決まらないよ。
もっと詳しく知りたい人へ

図で応答の矢印が上向きなのは、時間が戻るという意味?

違います。下向きは利用者からバックエンドへ進む要求、上向きはバックエンドから利用者へ返る応答です。2本の線は別のメッセージの向きを示しており、逆向きプロキシという名称の「逆」を図示しているわけではありません。

TLS終端と、バックエンドへのTLS接続の実例は?

CloudflareのFull (strict)は、利用者側だけでなくCloudflareとオリジンの間も暗号化し、オリジンの証明書を検証するモードです。必要な証明書や接続の条件があります。入口でのTLS処理と、そこから先の保護を別々に確認する具体例です。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「リバースプロキシ」って出てきたら「利用者に対してサーバー側の入口として動く中継役」と思えばだいたいOK!
📖 おまけ:英語の意味
「Reverse Proxy」 = サーバー側を代理するプロキシ
💬 クライアント側で選ぶフォワードプロキシと対比した名称です。要求が利用者からサーバーへ進む向き自体を反転させる、という意味ではありません。

参考資料

← 用語集にもどる