2014年7月16日水曜日

mod_cacheによる動的コンテンツのキャッシュ

Apacheの場合、mod_cacheを使うことで、PHPなど
動的コンテンツをキャッシュできます。

キャッシュ先には以下がありますが、今回はmod_disk_cacheを利用します。
  • メモリキャッシュ(mod_mem_cache)
  • ディスクキャッシュ(mod_disk_cache)

1. キャッシュディレクトリ作成
# mkdir /var/cache/httpd
# chown apache:apache /var/cache/httpd

2. mod_cacheモジュール設定
# vi /etc/httpd/conf/httpd.conf
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so

3. キャッシュ設定 (例:test.phpの場合)
# vi /etc/httpd/conf.d/vhost.conf
CacheEnable disk /test.php
CacheDefaultExpire 60
CacheIgnoreCacheControl on
CacheIgnoreNoLastMod on
CacheRoot /var/cache/httpd
CacheMinFileSize 1
CacheDirLevels 4
CacheDirLength 1

4. Expiresヘッダ設定 (例:60秒間ブラウザキャッシュを利用)
# vi /etc/httpd/conf.d/vhost.conf
ExpiresActive on ExpiresDefault "access plus 60 seconds"
Header set Cache-Control "max-age=60"

5. Apache再起動
# /etc/init.d/httpd restart

上記設定を行うと、コンテンツ取得後60秒間は次の動作となります。
  • サーバにリクエストせず、ブラウザキャッシュを表示します。
  • F5された場合、サーバは304 Not Modifiedを返却しブラウザキャッシュを表示します。

0 件のコメント: