リバースプロキシの可視化
リバースプロキシは、外部からのアクセスをまとめて受ける「代理の窓口」です。ただ中継するだけでなく、負荷分散・SSL終端・キャッシュなど多くの仕事をこなします。モードを選んで「リクエストを送る」を押し、リバースプロキシが裏で何をしているかを見てください。
いま何が起きているか
リバースプロキシの主な仕事
① 中継と隠蔽 … 外部からの入口を一手に引き受け、内部サーバーの存在・IP・構成を隠します。攻撃者は内部に直接触れられません。
② 負荷分散(ロードバランシング) … 複数のサーバーへリクエストを順番に振り分け、1台に集中しないようにします。アクセスが増えてもサーバーを増やせば対応できます。
③ ヘルスチェック/フェイルオーバー … サーバーの生死を監視し、故障したサーバーを自動で振り分け先から外します。利用者は障害に気づきません。
④ SSL/TLS終端 … HTTPSの暗号化・復号と証明書管理をプロキシに集約。内部サーバーは暗号処理から解放され、証明書の更新も1か所で済みます。
⑤ キャッシュ … よくある応答を覚えておき、同じ要求にはバックエンドを呼ばず即返答。高速化とサーバー負荷の軽減になります。
⑥ パス/ホストによる振り分け … URLの内容を見て、「/api はAPIサーバー、/static は静的サーバー」のように適切な宛先へルーティングします。
フォワードプロキシとの違い
名前は似ていますが、代理する向きが逆です。リバースプロキシは「サーバー側」の代理で、外から入ってくる通信を受けます。一方フォワードプロキシは「クライアント側」の代理で、内部の利用者が外へ出ていく通信を代理します。両者を並べた図は、当サイトのネットワーク境界の可視化で確認できます。
| リバースプロキシ | フォワードプロキシ | |
|---|---|---|
| 代理する相手 | サーバー | クライアント(利用者) |
| 通信の向き | 外 → 内 | 内 → 外 |
| 代表的な役割 | 負荷分散・SSL終端・キャッシュ・隠蔽 | フィルタリング・ログ・キャッシュ |
実際に使われている製品
リバースプロキシ/ロードバランサーとして、NGINX・HAProxy・Apache(mod_proxy) などがよく使われます。クラウドでは AWSのELB(ロードバランサー) や、CDN兼用の Cloudflare も広い意味でこの役割を担います(このinfravis自体もCloudflareの裏で動いています)。「1台で受けて、後ろに複数台」という構成は、ほとんどのWebサービスの基本形です。
基本情報技術者試験ではこう出る
「外部からのアクセスを受け、内部のWebサーバーに中継してサーバーの負荷分散や匿名化(隠蔽)を行うのはどれか(→リバースプロキシ)」「クライアントの代理で外部にアクセスしURLフィルタリングを行うのは(→フォワードプロキシ)」のように、役割と名称を結びつける問題が定番です。ロードバランサーの仕組み(ラウンドロビン等)やヘルスチェックも問われます。
よくある質問
Q. ロードバランサーとリバースプロキシは同じ?
A. 重なる部分が大きく、現場ではほぼ同義に使われることもあります。厳密には「リバースプロキシ」は中継・隠蔽・キャッシュなど幅広い機能の総称、「ロードバランサー」はそのうち負荷分散に特化した役割を指します。NGINXのように1つの製品が両方をこなすことが多いです。
Q. SSL終端すると、内部は暗号化されないの?
A. 基本構成では、プロキシ↔内部サーバーはHTTP(平文)になります。社内ネットワークが信頼できる前提です。より厳しい要件では、プロキシで一度復号した後に内部側も再暗号化する(SSLブリッジ)構成も使われます。