内部の端末に代わって外部と通信を中継するサーバ。
プロキシサーバとは、内部の端末に代わって外部と通信を中継するサーバです。「プロキシ(proxy)」は英語で「代理人」という意味で、その名のとおり社内のパソコンの代わりに外部のWebサーバへアクセスしてくれます。
端末(クライアント)はWebサーバへ直接つなぐのではなく、いったんプロキシに「このページを取ってきて」と頼みます。プロキシが代わりに取得し、その結果を端末に返します。外部のサーバから見ると通信相手はプロキシだけに見え、内部の端末は表に出ません。
身近な例で考えると、会社の購買担当者に似ています。社員一人ひとりが業者と直接やり取りするのではなく、まとめて購買担当に発注を頼む──こうすると窓口が一本化され、注文内容のチェックや過去の在庫の流用ができるのと同じです。
プロキシサーバが通信の出入口に立つことで、いくつもの便利な機能を実現できます。代表的なものは次のとおりです。
・キャッシュ:一度取得したWebページなどを保存しておき、同じ要求が来たら保存したものを返す。外部への通信量が減り、応答も速くなる
・フィルタリング:あらかじめ決めた条件にもとづき、危険なサイトや業務に関係ないサイトへのアクセスを許可・拒否する
・ログ記録:誰がいつどこへアクセスしたかを記録し、利用状況を把握できる
・身元隠し:外部からは通信相手がプロキシに見えるため、内部端末のIPアドレスが表に出ない
これらはすべて「内部の端末が外部と直接つながらず、プロキシを必ず経由する」という構造から生まれます。通信を一か所に集約できることが、プロキシの強みです。
プロキシサーバは、主に社内ネットワークの出入口として使われます。社員のパソコンがインターネットへアクセスするとき、必ずプロキシを通すことで一括して管理できるためです。
具体的な用途には次のようなものがあります。
・通信量・コストの削減:よく見られるページをキャッシュして外部回線の負荷を下げる
・アクセスの管理:業務に不要なサイトや危険なサイトへのアクセスを制限する
・利用状況の把握:誰がどのサイトを見たかをログに残し、監査やトラブル調査に役立てる
このように、内部から外部へ向かう通信をまとめて中継するプロキシはフォワードプロキシとも呼ばれます。逆に外部からの要求を受けて内部のサーバへ振り分けるリバースプロキシとは向きが反対なので、セットで覚えると理解が深まります。
プロキシには、通信の向きによって2種類あります。「内部から外部へ」がフォワードプロキシ、「外部から内部へ」がリバースプロキシです。
それぞれの特徴を比較すると次のとおりです。
・フォワードプロキシ:社内端末の代理人として外部へ通信する。端末を外部から隠してセキュリティを高め、キャッシュやフィルタリングも行う。本記事でここまで説明してきたのはこちら
・リバースプロキシ:外部(インターネット)から来た要求を受け取り、内部の複数サーバへ振り分ける。外部からは内部サーバの存在が見えず、負荷分散(=複数台で要求を分け合うこと)やSSL処理の肩代わりにも使われる
身近な例で考えると、フォワードプロキシは「会社の代表電話(内部の誰が電話しているか外からは分からない)」、リバースプロキシは「フロント受付(外からの来客を適切な担当部署へ案内する)」のようなものです。役割の「向き」が逆になっていることを押さえると、2つの区別がしやすくなります。
キャッシュ(=一度取得したデータを一時的に保存しておく仕組み)は、プロキシサーバが提供する最も重要な機能のひとつです。同じページへの2回目以降のアクセスは、保存したデータをそのまま返すため、外部への通信が発生しません。
キャッシュによる効果は2つあります。
・高速化:外部サーバへ取りに行く時間がなくなるため、ページが素早く表示される
・通信量の削減:外部への通信が減るため、インターネット回線の費用や負荷が下がる
ただし、キャッシュには「古いデータを返してしまう」という注意点もあります。Webページが更新されても、プロキシが保存した古いバージョンを返し続けることがあります。これを防ぐために、キャッシュには有効期限(=何時間・何日まで使ってよいか)が設定されており、期限が切れたら改めて外部サーバへ取りに行きます。身近な例では図書館の貸出本のようなもので、新しい版が出るまでは同じ本を繰り返し貸し出し(キャッシュ)、改訂版が出たら入れ替え(更新)します。