リバースプロキシ(Reverse Proxy)

リバースプロキシ(Reverse Proxy)とは、利用者からの要求をサーバーの手前で受け止め、代わりに裏側のサーバーへ取り次ぐ仕組みのことです。利用者から見れば、話している相手はここ一か所だけになります。

現実世界に例えると、リバースプロキシは会社の受付のようなものです。訪ねてきた人は受付に用件を伝えるだけでよく、担当者が何階のどの部屋にいるかを知る必要はありません。受付が奥へ取り次ぎ、答えを持って戻ってきます。

リバースプロキシ図解

リバースプロキシ図解

プロキシとの違い

項目 プロキシ リバースプロキシ
立つ位置 利用者の側 サーバーの側
代理するもの 利用者 サーバー
通信の向き 内から外へ 外から内へ
主な目的 社内からの通信の管理 負荷分散や防御

向きが逆になっている

名前の由来はここにあります。普通のプロキシは、社内から外へ出ていく通信を、利用者側の代理として中継します。リバースプロキシはその逆で、外から入ってくる通信をサーバー側の代理として受け止めます。立つ位置が反対なので「リバース(逆)」と呼ばれます。

裏側を隠せる

まず得られるのは目隠しの効果です。実際に処理をしているサーバーのアドレスや台数、構成が、外からは見えなくなります。攻撃を仕掛ける側は狙う先を絞りにくくなり、こちら側は裏の構成を自由に変えられます。サーバーを入れ替えても、外から見た窓口は変わりません。

複数のサーバーへ振り分ける

もっとも多い使い道がこれです。同じ処理ができるサーバーを何台か並べておき、来た要求を順に割り振ることで、一台あたりの負担を下げられます。混み合う時間帯にも耐えられるようになり、一台が止まっても残りで受け続けられます。

暗号化の処理を肩代わりする

意外に効くのがこの役目です。HTTPSの暗号を解く処理はそれなりに重く、これをリバースプロキシがまとめて引き受ければ、裏のサーバーは本来の仕事に専念できます。証明書の管理も一か所で済むため、期限の更新にかかる手間もまとまります。

よく使うものを覚えておく

同じ答えを何度も作らせない工夫もできます。画像や変化の少ないページをリバースプロキシが手元に保管しておき、次に同じ求めが来たら、裏まで通さずその場で返します。利用者から見た表示は速くなり、裏のサーバーの負担も同時に減ります。

攻撃から守る盾になる

安全面でも働きます。不審な要求をここで弾いたり、同じ相手からの過剰なアクセスに制限をかけたりできます。危険な通信を選り分ける専用の仕組みを、この位置に組み合わせるのも一般的です。守りを一か所へ集められるのが利点になります。

一か所に集まる怖さ

裏返しの弱点もあります。すべての通信がここを通る以上、リバースプロキシが止まればサービス全体が止まります。そのため実際には二台以上で組み、片方が落ちても続けられるようにします。便利さと引き換えに、ここだけは手を抜けない場所になります。

あわせて知っておきたい用語

  • プロキシ
    利用者に代わって外部と通信する中継役です。
  • ロードバランサー
    複数のサーバーへ通信を振り分ける仕組みです。
  • Nginx
    リバースプロキシとしてよく使われるソフトウェアです。
  • HTTPS
    通信を暗号化してやり取りする方式です。

コメント

タイトルとURLをコピーしました