キャッシュサーバ
2021-12-15 (水) 14:39:08
キャッシュサーバ †
- プロキシという仕組みを使ってデータをキャッシュして負荷を分散する。
- クライアントからのアクセスに対して、Webサーバからクライアントに仲介する際に保存(キャッシュ)した情報がある場合、保存されている情報をクライアントに送り返すことでWebサーバの負荷を低減する仕組み。
- 動的な情報を出力するCGIアプリケーション(JavaやPHPなど)にはキャッシュのデータは使えない。
- Webアクセラレータとして機能する。
キャッシュサーバを使った場合の利点 †
- 応答性能の向上
- 通信量の削減
- Webサーバの負荷を低減
キャッシュサーバの仕組み †
キャッシュサーバの処理フロー †
保存(キャッシュ)した情報がない場合 †
- クライアントからのリクエストに対し、HTTPヘッダに「via」を付加してWebサーバに転送する。
- 転送先のWebサーバが複数ある場合は、URLのディレクトリ等で、転送先を判断できるようにする。
- Webサーバからクライアントに転送する際に、転送する情報を保存(キャッシュ)する。
保存(キャッシュ)した情報がある場合 †
- クライアントからのリクエストに対し、HTTPヘッダに「If-Modified-Since」を付加してWebサーバに転送する。
- WebサーバはHTTPヘッダの「If-Modified-Since」と、データの最終更新日時を比べて、変更がない場合は、Webサーバに変更がないことの返信「304 Not Modified」をし、変更がある場合は、データ本体をWebサーバに返信する。
- Webサーバのデータに変更がない場合、キャッシュサーバは保存した情報を取り出して、クライアントに送信する。
保存(キャッシュ)した情報が更新された場合 †
その他 †
- Squid -http://www.squid-cache.org/ オープンソースのキャッシュサーバ
- Apache HTTP Serverのmod_cache
- Infinispan -元「JBoss Cache」