mod_cache.html.en revision a547340d7d0f0e79c9ba921c7dec7b18d0c800ff
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder This file is generated from xml source: DO NOT EDIT
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu Prodescu<title>mod_cache - Apache HTTP Server</title>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
6820f0de92751e29d73d64db48e776591f529a76Christian Maeder<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<link href="/images/favicon.ico" rel="shortcut icon" /></head>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
6820f0de92751e29d73d64db48e776591f529a76Christian Maeder<p class="apache">Apache HTTP Server Version 2.3</p>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<img alt="" src="/images/feather.gif" /></div>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Modules</a></div>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<div id="preamble"><h1>Apache Module mod_cache</h1>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<p><span>Available Languages: </span><a href="/en/mod/mod_cache.html" title="English"> en </a> |
6820f0de92751e29d73d64db48e776591f529a76Christian Maeder<a href="/fr/mod/mod_cache.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> |
6820f0de92751e29d73d64db48e776591f529a76Christian Maeder<a href="/ja/mod/mod_cache.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<a href="/ko/mod/mod_cache.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Content cache keyed to URIs.</td></tr>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>cache_module</td></tr>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>mod_cache.c</td></tr></table>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <div class="warning">This module should be used with care, as when the
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> directive is
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder in its default value of <strong>on</strong>, the <code class="directive"><a href="/mod/mod_authz_host.html#allow">Allow</a></code> and <code class="directive"><a href="/mod/mod_authz_host.html#deny">Deny</a></code> directives will be circumvented.
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder You should not enable quick handler caching for any content to which you
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder wish to limit access by client host name, address or environment
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder variable.</div>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <p><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> implements an <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> compliant HTTP
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder content cache that can be used to cache either local or proxied content.
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> requires the services of one or more storage
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder management modules. One storage management module is included in
c56a356d3fcc5e123efa790aab320781d94df3c7Jonathan von Schroeder the base Apache distribution:</p>
c56a356d3fcc5e123efa790aab320781d94df3c7Jonathan von Schroeder <dt><code class="module"><a href="/mod/mod_disk_cache.html">mod_disk_cache</a></code></dt>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <dd>implements a disk based storage manager.</dd>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <p>Content is stored in and retrieved from the cache using URI based keys. Content with
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder access protection is not cached.</p>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <p>Further details, discussion, and examples, are provided in the
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <a href="/caching.html">Caching Guide</a>.</p>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<div id="quickview"><h3 class="directives">Directives</h3>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachedefaultexpire">CacheDefaultExpire</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachedetailheader">CacheDetailHeader</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachedisable">CacheDisable</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cacheenable">CacheEnable</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cacheheader">CacheHeader</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cacheignorecachecontrol">CacheIgnoreCacheControl</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cacheignoreheaders">CacheIgnoreHeaders</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cacheignorenolastmod">CacheIgnoreNoLastMod</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cacheignorequerystring">CacheIgnoreQueryString</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cacheignoreurlsessionidentifiers">CacheIgnoreURLSessionIdentifiers</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachelastmodifiedfactor">CacheLastModifiedFactor</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachelock">CacheLock</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachelockmaxage">CacheLockMaxAge</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachelockpath">CacheLockPath</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachemaxexpire">CacheMaxExpire</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cacheminexpire">CacheMinExpire</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachequickhandler">CacheQuickHandler</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachestoreexpired">CacheStoreExpired</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachestorenostore">CacheStoreNoStore</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#cachestoreprivate">CacheStorePrivate</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#related">Related Modules and Directives</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#sampleconf">Sample Configuration</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#thunderingherd">Avoiding the Thundering Herd</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#finecontrol">Fine Control with the CACHE Filter</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#status">Cache Status and Logging</a></li>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<li><a href="/caching.html">Caching Guide</a></li>
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<h2><a name="related" id="related">Related Modules and Directives</a></h2>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="/mod/mod_disk_cache.html">mod_disk_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="/mod/mod_disk_cache.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="/mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="/mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="/mod/mod_disk_cache.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="/mod/mod_disk_cache.html#cachemaxfilesize">CacheMaxFileSize</a></code></li></ul></td></tr></table>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <div class="example"><h3>Sample httpd.conf</h3><p><code>
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder # Sample Cache Configuration<br />
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder LoadModule cache_module modules/mod_cache.so<br />
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder LoadModule disk_cache_module modules/mod_disk_cache.so<br />
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder <IfModule mod_disk_cache.c><br />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder CacheRoot c:/cacheroot<br />
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder CacheEnable disk /<br />
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder CacheDirLevels 5<br />
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder CacheDirLength 3<br />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder </IfModule> <br />
c56a356d3fcc5e123efa790aab320781d94df3c7Jonathan von Schroeder # When acting as a proxy, don't cache the list of security updates<br />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder CacheDisable http://security.update.server/update-list/<br />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder </IfModule>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder<h2><a name="thunderingherd" id="thunderingherd">Avoiding the Thundering Herd</a></h2>
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder <p>When a cached entry becomes stale, <code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> will submit
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder a conditional request to the backend, which is expected to confirm whether the
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder cached entry is still fresh, and send an updated entity if not.</p>
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder <p>A small but finite amount of time exists between the time the cached entity
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder becomes stale, and the time the stale entity is fully refreshed. On a busy
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder server, a significant number of requests might arrive during this time, and
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder cause a <strong>thundering herd</strong> of requests to strike the backend
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder suddenly and unpredicably.</p>
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder <p>To keep the thundering herd at bay, the <code class="directive">CacheLock</code>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder directive can be used to define a directory in which locks are created for
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder URLs <strong>in flight</strong>. The lock is used as a <strong>hint</strong>
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder by other requests to either suppress an attempt to cache (someone else has
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder gone to fetch the entity), or to indicate that a stale entry is being refreshed
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder (stale content will be returned in the mean time).
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder <p>When an entity is cached for the first time, a lock will be created for the
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder entity until the response has been fully cached. During the lifetime of the
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder lock, the cache will suppress the second and subsequent attempt to cache the
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder same entity. While this doesn't hold back the thundering herd, it does stop
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder the cache attempting to cache the same entity multiple times simultaneously.
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder <h3>Refreshment of a stale entry</h3>
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder <p>When an entity reaches its freshness lifetime and becomes stale, a lock
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder will be created for the entity until the response has either been confirmed as
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder still fresh, or replaced by the backend. During the lifetime of the lock, the
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder second and subsequent incoming request will cause stale data to be returned,
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder and the thundering herd is kept at bay.</p>
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder <h3>Locks and Cache-Control: no-cache</h3>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <p>Locks are used as a <strong>hint only</strong> to enable the cache to be
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder more gentle on backend servers, however the lock can be overridden if necessary.
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder If the client sends a request with a Cache-Control header forcing a reload, any
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder lock that may be present will be ignored, and the client's request will be
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder honoured immediately and the cached entry refreshed.</p>
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder <p>As a further safety mechanism, locks have a configurable maximum age.
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder Once this age has been reached, the lock is removed, and a new request is
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder given the opportunity to create a new lock. This maximum age can be set using
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder the <code class="directive">CacheLockMaxAge</code> directive, and defaults to 5
ece3b1a5353a9af3c966a1d5453594ed35334f7bJonathan von Schroeder <div class="example"><h3>Enabling the cache lock</h3><p><code>
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder # Enable the cache lock<br />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder CacheLock on<br />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder CacheLockPath /tmp/mod_cache-lock<br />
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder CacheLockMaxAge 5<br />
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder </IfModule>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder<h2><a name="finecontrol" id="finecontrol">Fine Control with the CACHE Filter</a></h2>
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder <p>Under the default mode of cache operation, the cache runs as a quick handler,
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder short circuiting the majority of server processing and offering the highest
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder cache performance available.</p>
d71447e45047d07006b4c20409fbd8ea287df01fJonathan von Schroeder <p>In this mode, the cache <strong>bolts onto</strong> the front of the server,
b35e053c2c5a5ea0f13decfd0303894861d82b4dJonathan von Schroeder acting as if a free standing RFC2616 caching proxy had been placed in front of
<p>To solve this problem the <code class="directive"><a href="#cachequickhandler ">CacheQuickHandler
by <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> (or another content processing filter). In this
<code class="module"><a href="/mod/mod_include.html">mod_include</a></code> are cached before being parsed:</p>
<code class="module"><a href="/mod/mod_include.html">mod_include</a></code>, but before being processed by
served remains consistent. <code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> is not in a position
<p>Once <code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> has made a decision as to whether or not
<code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code> directive as
<div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The default duration to cache a document when no expiry date is specified.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheDefaultExpire <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheDefaultExpire 3600 (one hour)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheDetailHeader" id="CacheDetailHeader">CacheDetailHeader</a> <a name="cachedetailheader" id="cachedetailheader">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add an X-Cache-Detail header to the response.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheDetailHeader <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheDetailHeader off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3.9 and later</td></tr>
<p>When the <code class="directive"><a href="#cachedetailheader">CacheDetailHeader</a></code> directive
<code class="directive"><a href="/mod/core.html#<location>"><Location></a></code> directive. If the quick handler
<div class="directive-section"><h2><a name="CacheDisable" id="CacheDisable">CacheDisable</a> <a name="cachedisable" id="cachedisable">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Disable caching of specified URLs</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheDisable <var>url-string</var> | <var>on</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> to <em>not</em> cache urls at or below
<div class="directive-section"><h2><a name="CacheEnable" id="CacheEnable">CacheEnable</a> <a name="cacheenable" id="cacheenable">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable caching of specified URLs using a specified storage
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheEnable <var>cache_type</var> <var>url-string</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> to use the disk based storage manager
implemented by <code class="module"><a href="/mod/mod_disk_cache.html">mod_disk_cache</a></code>.</p>
<div class="directive-section"><h2><a name="CacheHeader" id="CacheHeader">CacheHeader</a> <a name="cacheheader" id="cacheheader">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add an X-Cache header to the response.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheHeader <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheHeader off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3.9 and later</td></tr>
directive may appear within a <code class="directive"><a href="/mod/core.html#<directory>"><Directory></a></code>
or <code class="directive"><a href="/mod/core.html#<location>"><Location></a></code> directive. If the quick
<div class="directive-section"><h2><a name="CacheIgnoreCacheControl" id="CacheIgnoreCacheControl">CacheIgnoreCacheControl</a> <a name="cacheignorecachecontrol" id="cacheignorecachecontrol">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore request to not serve cached content to client</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheIgnoreCacheControl On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheIgnoreCacheControl Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheIgnoreHeaders" id="CacheIgnoreHeaders">CacheIgnoreHeaders</a> <a name="cacheignoreheaders" id="cacheignoreheaders">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Do not store the given HTTP header(s) in the cache.
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheIgnoreHeaders <var>header-string</var> [<var>header-string</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheIgnoreHeaders None</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheIgnoreNoLastMod" id="CacheIgnoreNoLastMod">CacheIgnoreNoLastMod</a> <a name="cacheignorenolastmod" id="cacheignorenolastmod">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore the fact that a response has no Last Modified
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheIgnoreNoLastMod On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheIgnoreNoLastMod Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<code class="module"><a href="/mod/mod_include.html">mod_include</a></code> processing for example) or not provided
<div class="directive-section"><h2><a name="CacheIgnoreQueryString" id="CacheIgnoreQueryString">CacheIgnoreQueryString</a> <a name="cacheignorequerystring" id="cacheignorequerystring">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore query string when caching</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheIgnoreQueryString On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheIgnoreQueryString Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheIgnoreURLSessionIdentifiers" id="CacheIgnoreURLSessionIdentifiers">CacheIgnoreURLSessionIdentifiers</a> <a name="cacheignoreurlsessionidentifiers" id="cacheignoreurlsessionidentifiers">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore defined session identifiers encoded in the URL when caching
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheIgnoreURLSessionIdentifiers <var>identifier</var> [<var>identifier</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheIgnoreURLSessionIdentifiers None</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheLastModifiedFactor" id="CacheLastModifiedFactor">CacheLastModifiedFactor</a> <a name="cachelastmodifiedfactor" id="cachelastmodifiedfactor">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The factor used to compute an expiry date based on the
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheLastModifiedFactor <var>float</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheLastModifiedFactor 0.1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheLock" id="CacheLock">CacheLock</a> <a name="cachelock" id="cachelock">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable the thundering herd lock.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheLock <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheLock off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.2.15 and later</td></tr>
<div class="directive-section"><h2><a name="CacheLockMaxAge" id="CacheLockMaxAge">CacheLockMaxAge</a> <a name="cachelockmaxage" id="cachelockmaxage">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the maximum possible age of a cache lock.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheLockMaxAge <var>integer</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheLockMaxAge 5</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheLockPath" id="CacheLockPath">CacheLockPath</a> <a name="cachelockpath" id="cachelockpath">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the lock path directory.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheLockPath <var>directory</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheLockPath /tmp/mod_cache-lock</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheMaxExpire" id="CacheMaxExpire">CacheMaxExpire</a> <a name="cachemaxexpire" id="cachemaxexpire">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum time in seconds to cache a document</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheMaxExpire <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheMaxExpire 86400 (one day)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheMinExpire" id="CacheMinExpire">CacheMinExpire</a> <a name="cacheminexpire" id="cacheminexpire">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The minimum time in seconds to cache a document</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheMinExpire <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheMinExpire 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheQuickHandler" id="CacheQuickHandler">CacheQuickHandler</a> <a name="cachequickhandler" id="cachequickhandler">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Run the cache from the quick handler.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheQuickHandler <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheQuickHandler on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheStoreExpired" id="CacheStoreExpired">CacheStoreExpired</a> <a name="cachestoreexpired" id="cachestoreexpired">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Attempt to cache responses that the server reports as expired</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheStoreExpired On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheStoreExpired Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<div class="directive-section"><h2><a name="CacheStoreNoStore" id="CacheStoreNoStore">CacheStoreNoStore</a> <a name="cachestorenostore" id="cachestorenostore">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Attempt to cache requests or responses that have been marked as no-store.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheStoreNoStore On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheStoreNoStore Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<li><code class="directive"><a href="#cacheignorecachecontrol">CacheIgnoreCacheControl</a></code></li>
<div class="directive-section"><h2><a name="CacheStorePrivate" id="CacheStorePrivate">CacheStorePrivate</a> <a name="cachestoreprivate" id="cachestoreprivate">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Attempt to cache responses that the server has marked as private</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheStorePrivate On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheStorePrivate Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<li><code class="directive"><a href="#cacheignorecachecontrol">CacheIgnoreCacheControl</a></code></li>
<p><span>Available Languages: </span><a href="/en/mod/mod_cache.html" title="English"> en </a> |
<a href="/fr/mod/mod_cache.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> |
<a href="/ja/mod/mod_cache.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="/ko/mod/mod_cache.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
<p class="apache">Copyright 2010 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div>