■Apache‎ > ‎

キャッシュ機能(2.2系)

コンテンツをキャッシュさせる事により、パフォーマンスを向上させます。
ApacheのManualによれば、実験的なモジュールだそうです。

■ドキュメントキャッシュ機能の導入
$ cd /usr/local/src/httpd-2.2.x
$ ./configure --enable-xxxxxxx
有効にするためには、下記が必要。
--enable-cache     //Cache機能を有効にする
--enable-disk-cache // Diskキャッシュを使う場合
--enable-mem-cache //Memoryキャッシュを使う場合
その他、ご自身の環境に合わせてオプションを追加してください。

$ make clean ; make
$ su
# make install 
    

Apacheが事前に入っていないのであれば
make cleanは要らないです。

■組み込まれているか確認
# /usr/local/apache2/bin/httpd -M
cache_module (static)
disk_cache_module (static)
mem_cache_module (static)     

があればOK。

■設定
# vi /usr/local/apache2/conf/httpd.conf
--- ここから ---
<IfModule mod_cache.c>
 <IfModule mod_disk_cache.c>
  CacheRoot /usr/local/apache2/cache
  CacheEnable disk /
  CacheDirLevels 5
  CacheDirLength 3
 </IfModule>

 <IfModule mod_mem_cache.c>
  CacheEnable mem /foo
  MCacheSize 4096
  MCacheMaxObjectCount 100
  MCacheMinObjectSize 1
  MCacheMaxObjectSize 2048
 </IfModule>
</IfModule>
--- ここまで ---     

上記をどこか適当に追加。

■解説
DiskCache
CacheRoot キャッシュデータの保管先
CacheEnable disk / url-string 以下をキャッシュ(つまり/以下)
CacheDirLevels キャッシュのサブディレクトリの深さの数(20以下)
CacheDirLength ブディレクトリ名の文字数(20以下)

MemCache
CacheEnable mem /foo url-string 以下をキャッシュ(つまり/foo以下)
MCacheSize キャッシュに使われるメモリの最大量をバイト単位で
指定(1024 バイト単位)
MCacheMaxObjectCount キャッシュに保管されるオブジェクトの最大数
MCacheMinObjectSize キャッシュに保管できるドキュメントの最小サイズ
(バイト)
MCacheMaxObjectSize キャッシュに保管できるドキュメントの最大サイズ
(バイト)

■DiskCache用にディレクトリ作成
Apacheの実行ユーザの指定が必要
わからない場合は、httpd.conf内のUser Groupを確認
# mkdir CacheRootで指定したPath
# chown apache:apache CacheRootで指定したPath
※実行User apache Group apache の場合
# /usr/local/apache2/bin/apachectl restart     

■確認
ブラウザーでCacheEnable diskに指定した先へアクセスし
CacheRootで指定場所にキャッシュデータが書き込まれているか
確認します。いくつかのディレクトリが出来上がってると思います。


url-string以下をキャッシュしない等
設定は他にもいろいろとあります。
機能を知りたい場合は、Apache Document Version 2.2を確認してください。