見出し画像

【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  312 05:47 /etc/httpd/conf/httpd.conf
-rw-r--r--. 1 root root 11753  311 17:46 /etc/httpd/conf/httpd.conf.org20230311
-rw-r--r--. 1 root root 12126  312 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に再度アクセスし、レスポンスヘッダやコンテンツが変化していないことを確認。また、レスポンス時間が短縮されていることもキャッシュが機能している証拠になる。

よろしければサポートお願いします!よりいい情報を発信します。