【Linux】 Apacheサーバのキャッシュ設定
キャッシュ
データや情報を一時的に保存しておく領域のこと。パフォーマンス向上やレイテンシの低減のために使用され、主にウェブページやその他のウェブコンテンツ(画像、CSS、JavaScriptなど)を保存する。
ウェブサイトの応答速度を向上させ、サーバーの負荷を軽減できる。
作業ログ
設定例
Apacheがインストールされている
rpm -q httpd | grep http
--------------------------------------------------------
httpd-2.4.6-98.el7.centos.6.x86_64
設定ファイルの編集
/etc/httpd/conf/httpd.confの設定。必要に応じてバックアップファイルを作成する。
ls -l /etc/httpd/conf/httpd.conf
cp -p /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_$(date +"%Y%m%d")
ls -l /etc/httpd/conf/httpd.con*
--------------------------------------------------------
-rw-r--r--. 1 root root 12126 3月 12 05:47 /etc/httpd/conf/httpd.conf
-rw-r--r--. 1 root root 11753 3月 11 17:46 /etc/httpd/conf/httpd.conf.org20230311
-rw-r--r--. 1 root root 12126 3月 12 05:47 /etc/httpd/conf/httpd.conf_20230318
ファイル内で、以下の行を追加する
vi /etc/httpd/conf/httpd.conf
--------------------------------------------------------
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
キャッシュ設定を行う
追加したら保存する。
<IfModule mod_cache.c>
CacheRoot /var/cache/mod_cache
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1
CacheMinFileSize 1024
CacheMaxFileSize 5242880
CacheIgnoreNoLastMod On
CacheDefaultExpire 3600
CacheLastModifiedFactor 0.1
</IfModule>
CacheRoot /var/cache/mod_cache : キャッシュファイルを格納するディレクトリを指定。この例では、/var/cache/mod_cacheディレクトリが使用。
CacheEnable disk / : ディスクキャッシュを有効にし、キャッシュ対象のURLスコープを指定。この例では、ルートURL("/")およびその下のすべてのコンテンツが対象。
CacheDirLevels 2 : キャッシュディレクトリ構造の階層数を指定。この例では、2階層のディレクトリ構造が使用。
CacheDirLength 1 : 各ディレクトリ階層の名前の長さを指定。この例では、各ディレクトリ名は1文字。
CacheMinFileSize 1024 : キャッシュされるファイルの最小サイズをバイト単位で指定。この例では、最小サイズは1024バイト(1キロバイト)。
CacheMaxFileSize 5242880 : キャッシュされるファイルの最大サイズをバイト単位で指定。この例では、最大サイズは5242880バイト(5メガバイト)。
CacheIgnoreNoLastMod On : Last-Modifiedヘッダが存在しないコンテンツでもキャッシュするかどうかを指定。この例では、キャッシュが許可。
CacheDefaultExpire 3600 : Last-Modifiedヘッダが存在しないコンテンツのデフォルトのキャッシュ期間を秒単位で指定。この例では、3600秒(1時間)。
CacheLastModifiedFactor 0.1 : Last-Modifiedヘッダが存在するコンテンツのキャッシュ期間を計算するためのファクターを指定。この例では、0.1(10%)が使用。
Apacheサーバーを再起動
起動に成功すればキャッシュ機能が有効になる。
systemctl restart httpd
キャッシュの確認(複数使用)
ブラウザまたはcurlコマンドでリクエストを送信: キャッシュ対象のURLにアクセスし、コンテンツが正しく表示されるかどうか確認。
curlコマンドを使用
レスポンスヘッダを確認
curl -I http://your_apache_server/your_target_url
HTTPレスポンスヘッダを確認
以下のようなヘッダが存在すれば、キャッシュが機能している可能性が高い
Cache-Control
Last-Modified
ETag
X-Cache(Apacheのmod_cacheを使用している場合)
2回目以降のリクエストでキャッシュされたコンテンツが返されるか: 同じURLに再度アクセスし、レスポンスヘッダやコンテンツが変化していないことを確認。また、レスポンス時間が短縮されていることもキャッシュが機能している証拠になる。
よろしければサポートお願いします!よりいい情報を発信します。