Apache HTTP サーバ バージョン 2.4
説明: | URI をキーにしたコンテンツのキャッシュ |
---|---|
ステータス: | Extension |
モジュール識別子: | cache_module |
ソースファイル: | mod_cache.c |
Allow
や Deny
ディレクティブを無視しますので、
注意して使って下さい。クライアントのホスト名、アドレスや環境変数を使って
アクセスを制限したいコンテンツに対してはキャッシュ機能を有効にするべきではありません。
mod_cache
はローカルのコンテンツやプロキシされた
コンテンツをキャッシュするために使われる RFC 2616 準拠の
HTTP コンテンツキャッシュを実装しています。mod_cache
の動作にはストレージを管理するモジュールが必要です。標準
Apache 配布には二つストレージ管理モジュールが含まれています:
mod_cache_disk
mod_mem_cache
mod_mem_cache
は次の二つのモードのどちらかで動作する
ように設定できます: オープンされているファイル記述子をキャッシュするモードか、
ヒープ上でのオブジェクトの自体をキャッシュをするモードです。
mod_mem_cache
はローカルで生成されるコンテンツや、
mod_proxy
が
ProxyPass
を使って設定されている
ときの (つまりリバースプロキシ での) バックエンドサーバの
コンテンツをキャッシュするのに使えます。コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。 アクセス保護のかけられているコンテンツはキャッシュされません。
より詳細な解説や例についてはキャッシュ機能 を参照してください。
関連モジュール | 関連ディレクティブ |
---|---|
#
# Sample Cache Configuration
#
LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>
#LoadModule cache_disk_module modules/mod_cache_disk.so
# If you want to use mod_cache_disk instead of mod_mem_cache,
# uncomment the line above and comment out the LoadModule line below.
<IfModule mod_cache_disk.c>
CacheRoot c:/cacheroot
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
</IfModule>
LoadModule mem_cache_module modules/mod_mem_cache.so
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
</IfModule>
# When acting as a proxy, don't cache the list of security updates
CacheDisable https://security.update.server/update-list/
</IfModule>
説明: | 期日が指定されていないときにドキュメントをキャッシュするデフォルトの期間 |
---|---|
構文: | CacheDefaultExpire seconds |
デフォルト: | CacheDefaultExpire 3600 (1時間) |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
CacheDefaultExpire
ディレクティブは、ドキュメントに
有効期限 (expiry) や最終修正時刻 (last-modified) が指定されていない場合の
デフォルトの時間を指定します。CacheMaxExpire
ディレクティブで指定された値はこの設定を上書きしません。
CacheDefaultExpire 86400
説明: | Add an X-Cache-Detail header to the response. |
---|---|
構文: | CacheDetailHeader on|off |
デフォルト: | CacheDetailHeader off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
ステータス: | Extension |
モジュール: | mod_cache |
互換性: | Available in Apache 2.3.9 and later |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | 特定の URL をキャッシュしない |
---|---|
構文: | CacheDisable url-string |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
CacheDisable
ディレクティブで
mod_cache
モジュールが url-string 以下の
URL をキャッシュしないようにします。
CacheDisable /local_files
説明: | 指定したストレージ管理方式を使ってのキャッシュを有効にする |
---|---|
構文: | CacheEnable cache_type url-string |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
CacheEnable
ディレクティブで mod_cache
モジュールが url-string 以下の URL をキャッシュするようにします。
キャッシュストレージ管理方式は cache_type 引数で指定します。
cache_type mem
で、
mod_mem_cache
で実装されているメモリを使ったストレージ
管理方式を使うように mod_cache
に指示します。
cache_type disk
で、
mod_cache_disk
で実装されているディスクを使ったストレージ
管理を使うように mod_cache
に指示します。
cache_type fd
は mod_cache
に
mod_mem_cache
により実装されているファイル記述子の
キャッシュを使うように指示します。
(下の例のように) CacheEnable
ディレクティブの
URL 空間が重複しているときは、該当するストレージ方式を順に試して、
実際にリクエストの処理ができると、その方式で処理します。
ストレージ管理方式が実行される順番は設定ファイル中の
CacheEnable
の順番により決定されます。
CacheEnable mem /manual
CacheEnable fd /images
CacheEnable disk /
フォワードプロクシサーバとして動作する場合、 url-string を使って、キャッシュを有効にするリモートサイトや プロクシプロトコルを指定することもできます。
# Cache proxied url's
CacheEnable disk /
# Cache FTP-proxied url's
CacheEnable disk ftp://
# Cache content from www.apache.org
CacheEnable disk https://www.apache.org/
説明: | Add an X-Cache header to the response. |
---|---|
構文: | CacheHeader on|off |
デフォルト: | CacheHeader off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
ステータス: | Extension |
モジュール: | mod_cache |
互換性: | Available in Apache 2.3.9 and later |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | キャッシュされているコンテンツを返さないようにクライアントから リクエストされても無視する |
---|---|
構文: | CacheIgnoreCacheControl On|Off |
デフォルト: | CacheIgnoreCacheControl Off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
Cache-Control: no-cache ヘッダや Pragma: no-store ヘッダのあるリクエストに
対しては、通常キャッシュを使いません。CacheIgnoreCacheControl
ディレクティブを使うと、この動作を上書きできます。
CacheIgnoreCacheControl
On とすると、
リクエストに no-cache という値があっても、キャッシュを使ってドキュメントを
返すようになります。認証を必要とするドキュメントは決して
キャッシュされません。
CacheIgnoreCacheControl On
説明: | 指定された HTTP ヘッダをキャッシュに保存しない。 |
---|---|
構文: | CacheIgnoreHeaders header-string [header-string] ... |
デフォルト: | CacheIgnoreHeaders None |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
RFC 2616 によると、hop-by-hop HTTP ヘッダはキャッシュには保管されません。
以下のヘッダは hop-by-hop ヘッダに該当しますので、
CacheIgnoreHeaders
の設定に関係なくキャッシュには保管されません:
Connection
Keep-Alive
Proxy-Authenticate
Proxy-Authorization
TE
Trailers
Transfer-Encoding
Upgrade
CacheIgnoreHeaders
で
キャッシュに保管しない追加の HTTP ヘッダを指定します。
例えば、クッキーをキャッシュに保管しないようにした方がよい場合も
あるでしょう。
CacheIgnoreHeaders
の引数は、
キャッシュに保管しない HTTP ヘッダを空白区切りにしたリスト形式です。
キャッシュに保管しないヘッダが hop-by-hop ヘッダだけの場合
(RFC 2616 準拠の動作のとき) は、
CacheIgnoreHeaders
を None
に設定できます。
CacheIgnoreHeaders Set-Cookie
CacheIgnoreHeaders None
Expires
のような適切のキャッシュ管理のために必要な
ヘッダが CacheIgnoreHeaders
の設定により
保管されていないときは、mod_cache の動作は定義されていません。
説明: | 応答に Last Modified が無くても気にしないようにする |
---|---|
構文: | CacheIgnoreNoLastMod On|Off |
デフォルト: | CacheIgnoreNoLastMod Off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
通常、Last-Modified による最終修正時刻の無いドキュメントはキャッシュ
されません。(例えば mod_include
による処理のときなどに)
Last-Modified 時刻が消去されたり、そもそも最初から提供されていない
状況があります。CacheIgnoreNoLastMod
ディレクティブを使うと、Last-Modified 日時が指定されていない
ドキュメントでもキャッシュするように指定できます。ドキュメントに
最終修正時刻 (Last-Modified) 有効期限 (expiry) がない場合は、有効期限の
生成に CacheDefaultExpire
が使われます。
CacheIgnoreNoLastMod On
説明: | キャッシュ時にクエリーストリングを無視する |
---|---|
構文: | CacheIgnoreQueryString On|Off |
デフォルト: | CacheIgnoreQueryString Off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
クエリーストリング付のリクエストについては通常、クエリーストリングごとに
個別にキャッシュされます。
キャッシュされるのは有効期限が指定されている場合のみで、これは
RFC 2616/13.9 に従ったものです。
CacheIgnoreQueryString
ディレクティブを使うと
有効期限が指定されていなくてもキャッシュしますし、
クエリーストリングが異なっていてもキャッシュを返します。
このディレクティブが有効になっている場合、キャッシュ機能の側面からみると、
あたかもリクエストにクエリーストリングがついていなかったかのように扱います。
CacheIgnoreQueryString On
説明: | Ignore defined session identifiers encoded in the URL when caching |
---|---|
構文: | CacheIgnoreURLSessionIdentifiers identifier [identifier] ... |
デフォルト: | CacheIgnoreURLSessionIdentifiers None |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | Override the base URL of reverse proxied cache keys. |
---|---|
構文: | CacheKeyBaseURL URL |
デフォルト: | CacheKeyBaseURL https://example.com |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
互換性: | Available in Apache 2.3.9 and later |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | LastModified の日付に基づいて有効期限 (expiry) を計算するための重みを指定する |
---|---|
構文: | CacheLastModifiedFactor float |
デフォルト: | CacheLastModifiedFactor 0.1 |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
ドキュメントに Last-Modified の日付が無いけれども有効期限 (expiry)
の日付があるというときに、有効期限を最終修正時刻からの経過時間として
計算するようにできます。有効期限を次の計算式に従って生成するのですが、
そのときに使われる factor を
CacheLastModifiedFactor
ディレクティブで指定します。
expiry-period = time-since-last-modified-date * factor
expiry-date = current-date + expiry-period
例えば、ドキュメントが 10 時間前に最後に修正されていて、 factor が 0.1 であれば、期日は 10*0.1 = 1 時間に 設定されます。現在時刻が 3:00pm であれば、計算された期日は 3:00pm + 1hour = 4:00pm になります。
期日が CacheMaxExpire
で設定されている値
より大きくなってしまっている場合は、CacheMaxExpire
の設定値が優先されます。
CacheLastModifiedFactor 0.5
説明: | Enable the thundering herd lock. |
---|---|
構文: | CacheLock on|off |
デフォルト: | CacheLock off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
互換性: | Available in Apache 2.2.15 and later |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | Set the maximum possible age of a cache lock. |
---|---|
構文: | CacheLockMaxAge integer |
デフォルト: | CacheLockMaxAge 5 |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | Set the lock path directory. |
---|---|
構文: | CacheLockPath directory |
デフォルト: | CacheLockPath /tmp/mod_cache-lock |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | ドキュメントをキャッシュする最大時間を秒数で表したもの |
---|---|
構文: | CacheMaxExpire seconds |
デフォルト: | CacheMaxExpire 86400 (一日) |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
CacheMaxExpire
ディレクティブは、
キャッシュする HTTP ドキュメントを、元のサーバに問い合わせないまま最大何秒
保持してもよいかを指定します。つまり、ドキュメントは最大でこの秒数間ぶん古く
なることになります。この最大値は、(訳注: レスポンス中で)ドキュメントと共に
ドキュメントの期日が提供されている場合でも適用されます。
CacheMaxExpire 604800
説明: | ドキュメントをキャッシュする最小秒数 |
---|---|
構文: | CacheMinExpire seconds |
デフォルト: | CacheMinExpire 0 |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
キャッシュ可能な HTTP ドキュメントがあったときに、オリジンサーバに問い合わせることなく
保持する秒数の最小値は CacheMinExpire
ディレクティブを使って設定します。
この値は、ドキュメントに妥当な有効期限が指定されていなかった場合にのみ使われます。
CacheMinExpire 3600
説明: | Run the cache from the quick handler. |
---|---|
構文: | CacheQuickHandler on|off |
デフォルト: | CacheQuickHandler on |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
互換性: | Apache HTTP Server 2.3.3 and later |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | Serve stale content in place of 5xx responses. |
---|---|
構文: | CacheStaleOnError on|off |
デフォルト: | CacheStaleOnError on |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
ステータス: | Extension |
モジュール: | mod_cache |
互換性: | Available in Apache 2.3.9 and later |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | Attempt to cache responses that the server reports as expired |
---|---|
構文: | CacheStoreExpired On|Off |
デフォルト: | CacheStoreExpired Off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
ステータス: | Extension |
モジュール: | mod_cache |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
説明: | no-store と指定されているレスポンスのキャッシュを試みる。 |
---|---|
構文: | CacheStoreNoStore On|Off |
デフォルト: | CacheStoreNoStore Off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
通常 Cache-Control: no-store ヘッダのついているレスポンスは
キャッシュされません。CacheStoreNoCache
ディレクティブでこの挙動を上書きできます。
CacheStoreNoCache
On で no-store ヘッダのついている
リソースに対してもキャッシュを試みるようになります。
ただし認証の求められるリソースは 決して キャッシュされません。
CacheStoreNoStore On
説明: | private と指定されているレスポンスのキャッシュを試みる。 |
---|---|
構文: | CacheStorePrivate On|Off |
デフォルト: | CacheStorePrivate Off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト |
ステータス: | Extension |
モジュール: | mod_cache |
通常 Cache-Control: private ヘッダのついているレスポンスは
キャッシュされません。CacheStorePrivate
ディレクティブでこの挙動を上書きできます。
CacheStorePrivate
On で private ヘッダのついている
リソースに対してもキャッシュを試みるようになります。
ただし認証の求められるリソースは 決して キャッシュされません。
CacheStorePrivate On