Apache2.4系にmod_cacheを導入

Apache2.4系にキャッシュを導入したいとおもいます。今回はそのメモになります。

Apache2.2との違い

Apache2.2では、httpd.confに記述されていましたが、2.4系では違います。

LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so

↑Apache2.2ではhttpd.confにモジュールを読み込んでいます。しかし2.4系では違います。

Apache2.4の読み込み

Apache2.4ではhttpd.confにモジュールが読み込まれているわけではありません。httpd.confを確認してみると

Include conf.modules.d/*.conf

とあります。conf.modules.dの中からモジュールを読み込んでいるので確認してみます。

ls  -all /etc/httpd/conf.modules.d/
00-base.conf 00-dav.conf 00-lua.conf 00-mpm.conf 00-proxy.conf 00-ssl.conf 01-cgi.conf 10-php.confと読み込みファイルがでてきます。モジュールは「00-base.conf」となります。
cat /etc/httpd/conf.modules.d/00-base.conf

LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_dbd_module modules/mod_authz_dbd.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule data_module modules/mod_data.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
LoadModule dumpio_module modules/mod_dumpio.so
LoadModule echo_module modules/mod_echo.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/mod_headers.so
LoadModule include_module modules/mod_include.so
LoadModule info_module modules/mod_info.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule remoteip_module modules/mod_remoteip.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule socache_dbm_module modules/mod_socache_dbm.so
LoadModule socache_memcache_module modules/mod_socache_memcache.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule status_module modules/mod_status.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule version_module modules/mod_version.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so

#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule buffer_module modules/mod_buffer.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule heartbeat_module modules/mod_heartbeat.so
#LoadModule heartmonitor_module modules/mod_heartmonitor.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule dialup_module modules/mod_dialup.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule ratelimit_module modules/mod_ratelimit.so
#LoadModule reflector_module modules/mod_reflector.so
#LoadModule request_module modules/mod_request.so
#LoadModule sed_module modules/mod_sed.so
#LoadModule speling_module modules/mod_speling.so

大量にできてきました。コメントアウトしているのは読み込まれていないモジュールになります。

まとめ

Apache2.2系

LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so

Apache2.4系

LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so

と読み込みモジュールが違う

キャッシュの導入

モジュールが読み込まれている事を確認(デフォルトで読み込まれている)したら、該当ファイルに記述していきます。今回はlogwを行います。logwはバーチャルホストで動かしているのでconfファイルを設定します。

キャッシュの導入-フォルダ作成-

キャッシュを格納するフォルダを作成します。

mkdir /var/tmp/cache
chmod 777 /var/tmp/cache

フォルダを作成したらファイルを編集します。

キャッシュの導入-confファイルの修正-

vi /etc/httpd/conf.d/ドメイン名.conf

ファイルを編集します。以下のを記述をします。

<IfModule mod_cache.c>
    <IfModule mod_cache_disk.c>
        CacheRoot /var/tmp/cache
        CacheEnable disk /
        CacheDisable /img
        CacheIgnoreCacheControl On
        CacheIgnoreNoLastMod On
        CacheDefaultExpire 86400
        CacheMaxExpire 172800
    </IfModule>
</IfModule>

修正したらファイルをチェックします。

/etc/ini.d/httpd configtest

Syntax OKとでたら再起動します

/etc/ini.d/httpd restart

このようになります。この設定では1時間ファイルを保持するかたちになります。