キャッシュサーバ

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サーバのデータに変更がない場合、キャッシュサーバは保存した情報を取り出して、クライアントに送信する。

保存(キャッシュ)した情報が更新された場合

  • HTTPヘッダに「If-Modified-Since」を付加してWebサーバ の更新を確認する。
  • Webサーバの更新を即時にキャッシュサーバに反映して、Webサーバへの更新確認を不要とする。

その他

関連用語