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.

# Related Modules and Directives

mod_disk_cache
mod_mem_cache
CacheRoot
CacheSize
CacheGcInterval
CacheDirLevels
CacheDirLength
CacheExpiryCheck
CacheMinFileSize
CacheMaxFileSize
CacheTimeMargin
CacheGcDaily
CacheGcUnused
CacheGcClean
CacheGcMemUsage
MCacheSize
MCacheMaxObjectCount
MCacheMinObjectSize
MCacheMaxObjectSize
MCacheRemovalAlgorithm

# 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