Proxy
Proxy(プロキシ)サーバー
- クライアントが自分を経由して、別のネットワークサービスへ間接的に接続できるようにするコンピューターシステムやアプリケーションを指す。
- サーバーとクライアントの間で中継役として代理で通信を行うことを「プロキシ」と呼び、その中継機能を持つものをプロキシサーバーと呼ぶ。
Proxy の種類
Forward Proxy
- 一般的にプロキシと言う場合は、フォワードプロキシを指す。
- クライアントがサーバーへ要求するときに直接要求せず、まずプロキシサーバーを経由して要求する方式である。
- より分かりやすく言えば、社内イントラネットからインターネット上のサーバーへ要求するとき、先にプロキシサーバーを呼び出す。この方式をフォワードプロキシという。
- サーバーに対してクライアントが誰なのかを隠す役割を持つ。
- サーバーが受け取る IP はフォワードプロキシサーバーの IP であるため、クライアントが誰なのか分からない。
- 下の図で考えると、プロキシサーバーを先に呼び出す場合がフォワードプロキシである。
- 例: VPN
Reverse Proxy
- フォワードプロキシとは反対方向で考えればよい。
- クライアントがサーバーを呼び出すときにリバースプロキシを呼び出し、プロキシサーバーが要求して受け取った応答をクライアントへ渡す方式である。
- 内部イントラネットでは、サーバーを呼び出すためにインターネット側のクライアントがリバースプロキシサーバーへ要求し、応答を受け取る方式である。
- リバースプロキシは、サーバーが誰なのかを隠す役割を持つ。
- クライアントはリバースプロキシサーバーを先に呼び出すため、実際のサーバーの IP を知ることができない。
- 下の図で考えると、インターネット側のクライアントがプロキシサーバーを呼び出して内部ネットワーク上のサーバーを呼び出す方式がリバースプロキシである。
- 例: Gateway
Proxy の利点
- クライアントとサーバーが直接通信せず、中継サーバーであるプロキシサーバーを使用することで、セキュリティ、性能、トラフィック分散など複数の利点を得られる。
- サーバーへ要求された内容をキャッシュしておき、同じ要求が来たときにすぐ応答するように設定できるため、時間とリソース使用量を節約する効果もある。
- セキュリティ
- プロキシサーバーを使うと、クライアントやサーバーの IP を隠せる。実際のサーバーまたはクライアント IP を隠し、プロキシサーバーの IP だけを公開することで、ハッキングへの備えになる。
- 性能
- プロキシサーバーを使用すると、キャッシュ機能と分散によって性能向上を期待できる。
- キャッシュ機能は、よく使われる同一の要求をキャッシュして再利用する方式である。
- 実際のサーバーを再度呼び出さず、プロキシサーバーが代わりに応答することで、サーバーのリソース使用量を減らす。
- トラフィック分散
- 一部のプロキシサーバーはロードバランシングも提供するため、複数の分散サーバーがある場合はサーバーのトラフィックを分散できる。
- また、エンドポイント(URL)ごとに呼び出すサーバーを設定できるため、役割に応じてサーバーのトラフィックを分散することもできる。
- その他
- HTTPS 証明書の管理を 1 台のプロキシサーバーが担当し、その後ろで動作しているサーバーは HTTP でサービスすることもできる。こうすれば、サーバーごとに証明書を管理しなくてもよいという利点がある。