#author("2018-09-13T00:01:28+09:00","default:k1rou","k1rou") #author("2021-12-15T14:39:08+09:00","default:k1rou","k1rou") *キャッシュサーバ [#kf7300de] -[[プロキシ]]という仕組みを使ってデータを[[キャッシュ]]して負荷を分散する。 -クライアントからのアクセスに対して、[[Webサーバ]]からクライアントに仲介する際に保存([[キャッシュ]])した情報がある場合、保存されている情報をクライアントに送り返すことで[[Webサーバ]]の負荷を低減する仕組み。 -動的な情報を出力するCGIアプリケーション(JavaやPHPなど)には[[キャッシュ]]のデータは使えない。 -[[Webアクセラレータ]]として機能する。 **キャッシュサーバを使った場合の利点 [#x16d564a] *キャッシュサーバを使った場合の利点 [#x16d564a] -応答性能の向上 -通信量の削減 -Webサーバの負荷を低減 **キャッシュサーバの仕組み [#zd0508d0] *キャッシュサーバの仕組み [#zd0508d0] -[[DNS]]サーバに[[Webサーバ]]ではなく[[キャッシュサーバ]]を登録する。 -[[Webサーバ]]側でデータが変更されると、[[キャッシュ]]のデータは使えない。 **キャッシュサーバの処理フロー [#b460978f] ***保存([[キャッシュ]])した情報がない場合 [#tcadbd59] *キャッシュサーバの処理フロー [#b460978f] **保存([[キャッシュ]])した情報がない場合 [#tcadbd59] -クライアントからのリクエストに対し、HTTPヘッダに「via」を付加してWebサーバに転送する。 -転送先の[[Webサーバ]]が複数ある場合は、URLのディレクトリ等で、転送先を判断できるようにする。 -[[Webサーバ]]からクライアントに転送する際に、転送する情報を保存([[キャッシュ]])する。 ***保存([[キャッシュ]])した情報がある場合 [#u5cd9318] **保存([[キャッシュ]])した情報がある場合 [#u5cd9318] -クライアントからのリクエストに対し、HTTPヘッダに「If-Modified-Since」を付加して[[Webサーバ]]に転送する。 -[[Webサーバ]]はHTTPヘッダの「If-Modified-Since」と、データの最終更新日時を比べて、変更がない場合は、[[Webサーバ]]に変更がないことの返信「304 Not Modified」をし、変更がある場合は、データ本体を[[Webサーバ]]に返信する。 -[[Webサーバ]]のデータに変更がない場合、キャッシュサーバは保存した情報を取り出して、クライアントに送信する。 ***保存([[キャッシュ]])した情報が更新された場合 [#tf56266a] **保存([[キャッシュ]])した情報が更新された場合 [#tf56266a] -HTTPヘッダに「If-Modified-Since」を付加して[[Webサーバ]] の更新を確認する。 -[[Webサーバ]]の更新を即時にキャッシュサーバに反映して、[[Webサーバ]]への更新確認を不要とする。 **その他 [#v0a7e30d] *その他 [#v0a7e30d] -[[Squid]] -http://www.squid-cache.org/ オープンソースのキャッシュサーバ -[[Apache HTTP Server]]のmod_cache -[[Infinispan]] -元「JBoss Cache」 **関連用語 [#s9ef4651] *関連用語 [#s9ef4651] -[[memcached]] -[[リバースプロキシ]] -[[プロキシ]] -[[CDN]] -[[CDSP]]