リバースプロキシ りばーすぷろきし
プロキシロードバランサーWebサーバーSSL終端キャッシュWAF
リバースプロキシについて教えて
簡単に言うとこんな感じ!
会社の受付係みたいなもの!外からの来客(インターネットのリクエスト)をいったん受け付けて、「あなたはAのサーバーへ、あなたはBのサーバーへ」って振り分けてくれるんだ。中のサーバーを直接見せないから、セキュリティにも強くなるよ!
リバースプロキシとは
リバースプロキシとは、インターネットからのリクエストをクライアントの代わりに受け取り、内部のサーバーへ転送する「中継役」のサーバーのことです。クライアント側に置いて社内からのアクセスを代理する「フォワードプロキシ」とは逆に、サーバー側に置いてサーバーを守ることからリバース(逆)という名前がついています。
外部からは「1台のサーバーと通信している」ように見えますが、実際には裏側に複数のサーバーが動いていることが多く、リバースプロキシが透過的にやり取りを仲介します。大規模なWebサービスではほぼ必須の技術で、Nginx・Apache・HAProxy・Cloudflare などが代表的な実装として知られています。
ビジネス的な観点では、「本番環境のWebサーバーを外部に直接さらさない」「急なアクセス増加に対応しやすくする」「HTTPS化を一元管理する」といった実務上のメリットが大きく、システム選定・構成検討の際に必ず出てくる概念です。
リバースプロキシの主な機能
| 機能 | 内容 | ビジネス上の効果 |
|---|---|---|
| ロードバランシング | リクエストを複数のサーバーに振り分ける | 負荷分散・冗長化・高可用性 |
| SSL/TLS終端 | HTTPS通信の暗号化・復号を代理する | 証明書管理の一元化 |
| キャッシュ | 静的コンテンツを一時保存して高速返却 | バックエンドの負荷軽減 |
| セキュリティフィルタ | 不審なリクエストを遮断(WAF連携など) | 攻撃からサーバーを保護 |
| 圧縮 | レスポンスをgzip等で圧縮して転送 | 通信量削減・表示高速化 |
| URL書き換え | リクエストパスを変換して振り分け | 柔軟なルーティング設計 |
覚え方:「受付・警備・案内係」
リバースプロキシの役割は「受付(リクエストを受け取る)」「警備(不正を弾く)」「案内(適切なサーバーへ転送)」の3つ。会社の受付窓口をイメージすると覚えやすいです。
フォワードプロキシとの違い
【フォワードプロキシ】クライアント側に設置
社内PC → [プロキシ] → インターネット
※ 社内からの通信を代理・フィルタする
【リバースプロキシ】サーバー側に設置
インターネット → [リバースプロキシ] → 社内サーバー
※ 外からの通信を受けて内部に振り分ける
歴史と背景
- 1990年代前半:Webの黎明期。サーバーは1台が基本で、プロキシはキャッシュ目的のフォワード型が主流だった
- 1990年代後半:Webサービスの急成長でアクセス集中が問題に。複数サーバーへの振り分け(ロードバランシング)の需要が生まれる
- 2000年代:Apache の mod_proxy モジュール等でリバースプロキシが普及。ハードウェアアプライアンス製品(F5 BIG-IP等)も登場
- 2004年:Nginx(エンジンエックス)がリリース。高速・軽量な非同期処理でリバースプロキシのデファクトスタンダードへ
- 2010年代:クラウド普及とともにマイクロサービス構成が増え、APIゲートウェイやサービスメッシュとしてリバースプロキシの役割が拡大
- 2010年代後半〜現在:Cloudflare・AWS CloudFront などCDNがリバースプロキシ機能を包含。Let’s Encryptの普及でSSL終端の重要性がさらに増す
フォワードプロキシ・CDN・ロードバランサーとの比較
よく混同される近隣技術との違いを整理します。
実際の構成例(Nginx)
# Nginx をリバースプロキシとして使う設定例
server {
listen 443 ssl;
server_name example.com;
# SSL終端(外からのHTTPSをここで復号)
ssl_certificate /etc/ssl/certs/example.crt;
ssl_certificate_key /etc/ssl/private/example.key;
location /api/ {
# /api/ へのリクエストはAPIサーバーへ転送
proxy_pass http://backend-api:8080/;
}
location / {
# それ以外はWebサーバー群へロードバランシング
proxy_pass http://web_upstream;
}
}
upstream web_upstream {
server web-server-a:80;
server web-server-b:80;
}
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 7230 | HTTP/1.1 メッセージ構文・ルーティング(プロキシの基本動作を定義) |
| RFC 7231 | HTTP/1.1 セマンティクス(リクエスト・レスポンスの意味仕様) |
| RFC 7540 | HTTP/2(リバースプロキシでの HTTP/2 対応の基盤) |
| RFC 8441 | HTTP/2 上での WebSocket プロキシ対応 |
| RFC 9110 | HTTP セマンティクス統合版(HTTP/1.1〜3 共通の意味仕様) |
関連用語
- フォワードプロキシ — クライアント側に置いて社内→外の通信を代理・フィルタするプロキシ
- ロードバランサー — 複数のサーバーへリクエストを振り分けて負荷を分散する装置
- WAF(Web Application Firewall) — Webアプリへの攻撃を検知・遮断するセキュリティ機能
- CDN(コンテンツデリバリーネットワーク) — 世界中のエッジサーバーでコンテンツを高速配信する仕組み
- SSL/TLS — インターネット通信を暗号化するプロトコル(HTTPS の基盤)
- APIゲートウェイ — マイクロサービス向けにAPIのルーティング・認証・流量制限を担う中継層
- DMZ(非武装地帯) — 外部と内部の間に設ける中間ネットワークゾーン。リバースプロキシを置く場所