リバースプロキシ

読み:りばーすぷろきし / 英語表記:reverse proxy

サーバの側に置き、外部からの要求を受け付けて、内部のサーバに中継するプロキシサーバ。内部のサーバを直接外部に公開せずに済み、負荷分散やTLSの終端、キャッシュなども行える。

イマシルちゃんの解説

ふつうのプロキシ(フォワードプロキシ)は、社員の代わりに外のお店に行く「お使い係」だったよね。

リバースプロキシはその逆で、お店(サーバ)の入口に立つ「受付係」なんだ。
お客さん(外部の利用者)は、受付係とだけ話して、奥のバックヤード(社内のサーバ)には入れない。
受付係が代わりに奥へ取り次ぐから、大事なサーバを外から直接触らせずに済むんだよ!

より深い解説

定義

リバースプロキシは、外部のクライアントからの要求を、内部のWebサーバなどの代わりに受け付け、適切な内部のサーバに転送し、その応答をクライアントに返すサーバである。クライアントから見ると、リバースプロキシがサーバそのものに見える。通常はDMZに置く。

主な役割

役割内容
内部のサーバの保護内部のサーバのアドレスを外部に見せず、外部からの直接の接続を受けない。ファイアウォールでは、インターネットからはリバースプロキシへの通信だけを許可し、内部のサーバへはリバースプロキシからの通信だけを許可する
負荷分散複数のサーバに要求を振り分ける(ロードバランサの役割)
TLSの終端HTTPSの暗号化・復号をまとめて行い、内部のサーバの負荷を減らす。証明書の管理も一か所で済む
認証内部のサーバに届く前に、利用者を認証する
キャッシュ・圧縮静的なコンテンツを返し、応答を速くする
WAF不正な要求(SQLインジェクションなど)を検査して遮断する

使われ方の例

例内容
社外からの業務サーバの利用テレワーク中のPCが、DMZのリバースプロキシを経由して、社内の業務サーバに接続する。リバースプロキシで利用者を認証する
Webサービスの公開複数のアプリケーションサーバを、1つのドメイン名の後ろにまとめる
CDN世界中に置いた、リバースプロキシのような働きをするキャッシュサーバ

フォワードプロキシとの比較

フォワードプロキシリバースプロキシ
誰の代理かクライアントの代理サーバの代理
通信の向き内部 → 外部外部 → 内部
端末の設定必要(PACファイルなど)不要(DNSでリバースプロキシのアドレスを引かせる)

同じソフトウェア(nginx、Apache HTTP Server、Squidなど)を、設定によってどちらとしても使えることが多い。フォワードプロキシとして使っていたサーバを、設定を変えてリバースプロキシとして使い直す場合は、ファイアウォールの許可ルールも、通信の向きに合わせて見直す必要がある。

実際の試験ではここに出る!

この用語が出てくる記事

↑