SDN
← 概念一覧へ
ネットワーク

リバースプロキシ

Reverse Proxy

内部のサーバー群を隠し、外部からは単一の窓口として振る舞うWebサーバー。セキュリティ向上・SSL処理・圧縮・キャッシュなどを一手に引き受ける。サーバー1台でも価値がある。

キーポイント
  • 役割: クライアントからのリクエストを受け、裏の内部サーバーへ中継する『公開窓口』。
  • 利点: バックエンド情報の隠蔽、IPブラックリスト、接続数制限などセキュリティ向上。
  • さらに: SSL termination(暗号化処理の肩代わり)、圧縮、キャッシュ、静的コンテンツ配信もできる。
  • ロードバランサーとの違い: LBは『複数サーバーへ振り分ける』のが本質で複数台前提。リバースプロキシは『窓口を1つにする』のが本質で1台でも有用。
  • NGINX や HAProxy は L7リバースプロキシとロードバランサーの両方をこなせる。
トレードオフ

リバースプロキシを挟むと構成の複雑さが増す。また1台だけだとそこが単一障害点になり、冗長化すればさらに複雑になる。ロードバランサーと役割が重なる部分があり混同しやすいが、『振り分け(LB)』と『窓口の一元化・保護(reverse proxy)』という主目的の違いを押さえると整理できる。

たとえ話: 会社の受付

リバースプロキシは会社の受付です。外部からの来訪者(=クライアント)は、まず受付に来ます。受付は『どの社員(=内部サーバー)に取り次ぐか』を判断し、来訪者には社内の座席配置(=サーバーの内部構成)を一切見せません。怪しい来訪者は門前払い(IPブロック)し、混みすぎたら入場制限もします。

図を描画中...

クライアントから見えるのはプロキシのIPだけ。裏に何台サーバーがあるか、どんな構成かは隠されます。これがセキュリティと柔軟性を生みます。

リバースプロキシ vs フォワードプロキシ(混同注意)

  • フォワードプロキシ: クライアント側に立ち、クライアントを代理する(社内から外部サイトへ出るときの代理)。
  • リバースプロキシ: サーバー側に立ち、サーバーを代理する(外部からサーバーへ入るときの窓口)。

名前が似ていて紛らわしいですが、『誰の代理か』が真逆です。

ロードバランサーとの違い

機能が重なるので混乱しがちですが、主目的が違います

リバースプロキシロードバランサー
主目的窓口の一元化・保護・キャッシュ複数サーバーへの負荷分散
サーバー1台でも有用?はい(隠蔽・SSL・キャッシュの価値)あまり(分散先がない)
典型ツールNGINXHAProxy / NGINX

NGINXやHAProxyは両方の役割を兼ねられるので、実際には『リバースプロキシ兼ロードバランサー』として使われることが多いです。

できること一覧

  • セキュリティ(内部隠蔽、IPブラックリスト、接続数制限)
  • SSL termination(暗号化処理の肩代わり)
  • 圧縮(レスポンスを小さくして転送を速く)
  • キャッシュ(同じリクエストへの応答を使い回す)
  • 静的コンテンツ配信(画像などを直接返す)

つまずきポイント

  • 「LBとリバースプロキシは同じものでは?」とよく混乱する。ツールが同じ(NGINX)でも、果たしている役割で呼び分ける。分散しているならLB的、窓口・保護しているならリバースプロキシ的。
  • リバースプロキシも1台だと単一障害点。本番では冗長化する。

📊 図解

リバースプロキシ vs ロードバランサーの構成

図を描画中...

関連する概念

この概念で腕試し

関連する 4 問のクイズに挑戦できます。

クイズを解く