Project

General

Profile

Actions

WEBCACHE

概要

usamimi.infoでは、WEBサーバーとブラウザの間にキャッシュサーバー(負荷分散サーバー)が存在しています。
一定のルールに基づいて、WEBサーバーからブラウザに返したデータをキャッシュしたり、ブラウザからの要求をWEBサーバーに渡さず貯めてあるキャッシュを返したりしています。
これは、WEBサーバーに掛かる負荷を下げる為と、WEBサーバーよりも高速でデータを返す事を目的としています。

制御方法について

キャッシュデータにはデメリットもあり、WEBページを更新したのに古いページが表示されてしまう(キャッシュが残っているせいで)事があります。
これを回避するために、幾つかの手段があるのでその方法を書き出します。
ブラウザ側へのキャッシュ制御と同じ物なので、ブラウザへのキャッシュ制御にも使えます。

ファイル名を工夫する方法

クエリーを付与する事でキャッシュを回避できます。
例えば、test.css?date=20150220といった具合に付ける事で
キャッシュを回避します。一時的にテストなどでキャッシュさせたくない場合などに有効と思いますが
そのままにしておくとキャッシュされないので、確認が終わったら戻すなどの配慮も必要です。

その他、ファイル名を変える事でもキャッシュを回避できます。
ファイル名にこだわりが無ければ日付を入れたファイル名にしておくのも手だと思います。

htaccessを使う方法(httpヘッダ)

<Files ~ ".(html|css)$">
    Header set Cache-Control "no-cache" 
</Files>
  • 1行目と3行目は対象の指定です。
    カッコ内のhtml、cssの文字列が含まれる場合となります。
    txtにしたり、jsにしたり必要に応じて編集します。
  • 2行目が肝となるヘッダの制御文です。
    Cache-Controlヘッダにno-chaceと指定する事で、キャッシュを無効にします。
    no-cacheではなくmax-age=120といった文に変える事で、指定時間だけ有効なキャッシュにすることもできます。
    <Files ~ ".(html|css)$">
        Header set Cache-Control "max-age=120" 
    </Files>
    

    上記例では120なので2分です。

参考URL(外部サイト)
http://love-guava.com/blog-htaccess-cache/

尚、キャッシュを無効にすることは、そのままWEBサーバーへアクセスしに行くことになる為
アクセスが多かったり、動作が重い、滅多に更新する事が無いようなファイルは極力キャッシュは有効にしたままにして下さい。

キャッシュをクリアする

準備中です。
キャッシュの有効期限を設定できても、キャッシュされてしまったものをクリアできなければ困ってしまう為
管理ページからキャッシュをクリアするようにキャッシュサーバーに働きかけられるようなものを用意しようとしています。

導入されているキャッシュサーバー(スペック)

  • ブラウザ及びサーバーキャッシュへのキャッシュのデフォルト値は1日
  • 対象の拡張子
gif jpeg jpg png bmp js css swf css.php txt avi mp4 flv wav mp
3

Updated by Clelia ごりゅ almost 10 years ago · 16 revisions