プロジェクト

全般

プロフィール

WEBCACHE » 履歴 » バージョン 14

Clelia ごりゅ, 2015/02/20 17:59

1 1 Clelia ごりゅ
h1. WEBCACHE
2
3
h2. 概要
4
5
usamimi.infoでは、WEBサーバーとブラウザの間にキャッシュサーバー(負荷分散サーバー)が存在しています。
6
一定のルールに基づいて、WEBサーバーからブラウザに返したデータをキャッシュしたり、ブラウザからの要求をWEBサーバーに渡さず貯めてあるキャッシュを返したりしています。
7
これは、WEBサーバーに掛かる負荷を下げる為と、WEBサーバーよりも高速でデータを返す事を目的としています。
8
9
h2. 制御方法について
10
11
キャッシュデータにはデメリットもあり、WEBページを更新したのに古いページが表示されてしまう(キャッシュが残っているせいで)事があります。
12
これを回避するために、幾つかの手段があるのでその方法を書き出します。
13 6 Clelia ごりゅ
ブラウザ側へのキャッシュ制御と同じ物なので、ブラウザへのキャッシュ制御にも使えます。
14 1 Clelia ごりゅ
15 2 Clelia ごりゅ
h3. ファイル名を工夫する方法
16
17 4 Clelia ごりゅ
クエリーを付与する事でキャッシュを回避できます。
18
例えば、@test.css?date=20150220@といった具合に付ける事で
19
キャッシュを回避します。一時的にテストなどでキャッシュさせたくない場合などに有効と思いますが
20
そのままにしておくとキャッシュされないので、確認が終わったら戻すなどの配慮も必要です。
21
22 10 Clelia ごりゅ
その他、ファイル名を変える事でもキャッシュを回避できます。
23
ファイル名にこだわりが無ければ日付を入れたファイル名にしておくのも手だと思います。
24
25 2 Clelia ごりゅ
h3. htaccessを使う方法(httpヘッダ)
26
27 3 Clelia ごりゅ
<pre>
28
<Files ~ ".(html|css)$">
29
    Header set Cache-Control "no-cache"
30
</Files>
31
</pre>
32
33
* 1行目と3行目は対象の指定です。
34
カッコ内のhtml、cssの文字列が含まれる場合となります。
35
txtにしたり、jsにしたり必要に応じて編集します。
36
* 2行目が肝となるヘッダの制御文です。
37
Cache-Controlヘッダにno-chaceと指定する事で、キャッシュを無効にします。
38 13 Clelia ごりゅ
no-cacheではなくmax-age=120といった文に変える事で、指定時間だけ有効なキャッシュにすることもできます。
39 14 Clelia ごりゅ
<pre>
40
<Files ~ ".(html|css)$">
41
    Header set Cache-Control "max-age=120"
42
</Files>
43
</pre>
44
上記例では120なので2分です。
45 3 Clelia ごりゅ
46
参考URL(外部サイト)
47
http://love-guava.com/blog-htaccess-cache/
48
49
尚、キャッシュを無効にすることは、そのままWEBサーバーへアクセスしに行くことになる為
50 7 Clelia ごりゅ
アクセスが多かったり、動作が重い、滅多に更新する事が無いようなファイルは極力キャッシュは有効にしたままにして下さい。
51 1 Clelia ごりゅ
52
h2. 導入されているキャッシュサーバー(スペック)
53 5 Clelia ごりゅ
54
* Varnish https://www.varnish-cache.org/
55
56 9 Clelia ごりゅ
* ブラウザへのキャッシュのデフォルト値は1日
57 12 Clelia ごりゅ
* 対象の拡張子
58
59 1 Clelia ごりゅ
|gif|jpeg|jpg|png|bmp|js|css|swf|css.php|txt|avi|mp4|flv|wav|mp
60 12 Clelia ごりゅ
3|
61
62 11 Clelia ごりゅ
* サーバーキャッシュは、デフォルト10分
63 12 Clelia ごりゅ
* 対象の拡張子
64 11 Clelia ごりゅ
基本全て