mod_cache Content cache keyed to URIs. Experimental mod_cache.c cache_module This module is experimental. Documentation is still under development...

mod_cache implements an RFC 2616 compliant HTTP content cache that can be used to cache either local or proxied content. mod_cache requires the services of one or more storage management modules. Two storage management modules are included in the base Apache distribution:

mod_disk_cache
implements a disk based storage manager for use with mod_proxy
mod_mem_cache
implements an in-memory based storage manager. mod_mem_cache can be configured to operate in two modes: caching open file descriptors or caching objects in heap storage. mod_mem_cache is most useful when used to cache locally generated content or to cache backend server content for mod_proxy configured for ProxyPass (aka reverse proxy)

Content stored and retrived keyed to the URL. Content with access protections is not cached.

Sample Configuration Sample httpd.conf #
# Sample Cache Configuration
#
LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>

#LoadModule disk_cache_module modules/mod_disk_cache.so
<IfModule mod_disk_cache.c>
CacheRoot c:/cacheroot
CacheSize 256
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
</IfModule>

LoadModule mem_cache_module modules/mod_mem_cache.so
<IfModule mod_mem_cache.c>
MCacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
</IfModule>

</IfModule>
CacheEnable Enable caching specified URLs in a specified storage manager CacheEnable cache_type url-string server config

The CacheEnable directive instructs mod_cache to cache urls at or below url-string. The cache store is specified with the cache_type argument. cache_type mem instructs mod_cache to use the in-memory cache storage manager implemented by mod_mem_cache. cache_type disk instructs mod_cache to use the cache storage manager implemented by mod_disk_cache .

CacheEnable disk /
CacheEnable mem /manual
CacheEnable fd /images
CacheDisable Disable caching of specified URLs by specified storage manager CacheDisable cache_type url-string server config

The CacheDisable directive instructs mod_cache to not cache urls at or above url-string.

Example CacheDisable disk /local_files
CacheMaxExpire The maximum time in seconds to cache a document CacheMaxExpire seconds CacheMaxExpire 86400 (one day) server config

The maximum time in seconds to cache a document. The CacheMaxExpire takes precedence over the Expire field from the header.

CacheMaxExpire 604800
CacheDefaultExpire CacheDefaultExpire seconds CacheDefaultExpire 3600 (one hour) server config

The default time in seconds to cache a document if the page does not have an expiry date in the Expires field.

CacheDefaultExpire 86400
CacheIgnoreNoLastMod Ignore responses where there is no Last Modified Header CacheIgnoreNoLastMod server config

Ignore responses where there is no Last Modified Header

CacheIgnoreNoLastMod
CacheIgnoreCacheControl Ignore requests from the client for uncached content CacheIgnoreCacheControl server config

Ignore requests from the client for uncached content

CacheIgnoreNoLastMod
CacheLastModifiedFactor The factor used to estimate the Expires date from the LastModified date CacheLastModifiedFactor float CacheLastModifiedFactor 0.1 server config

The factor used to estimate the Expires date from the LastModified date.

CacheLastModifiedFactor 0.5
CacheForceCompletion Percentage of download to arrive for the cache to force complete transfer CacheForceCompletion Percentage CacheForceCompletion 60 server config

Percentage of download to arrive for the cache to force complete transfert.

CacheForceCompletion 80 This feature is currently not implemented.
CacheMaxStreamingBuffer Maximum amount of a streamed response to buffer in memory before declaring the response uncacheable CacheMaxStreamingBuffer size_in_bytes CacheMaxStreamingBuffer 0 server config

Maximum number of bytes of a streamed response (i.e., a response where the entire content is not available all at once, such as a proxy or CGI response) to buffer before deciding if the response is cacheable. By default, a streamed response will not be cached unless it has a Content-Length header. The reason for this is to avoid using a large amount of memory to buffer a partial response that might end up being too large to fit in the cache anyway. To enable caching of streamed responses, use CacheMaxStreamingBuffer to specify the maximum amount of buffer space to use per request.

Note: Using a nonzero value for CacheMaxStreamingBuffer will not delay the transmission of the response to the client. As soon as mod_cache copies a block of streamed content into a buffer, it sends the block on to the next output filter for delivery to the client.

# Enable caching of streamed responses up to 64KB:
CacheMaxStreamingBuffer 65536