mod_cache.xml revision fc3182e72cf0679cbf14a95213fbb9a98c3cf597
3802a3d3d7af51ddff31943d5514382f01265770Lennart Poettering<?xml version="1.0"?>
12b42c76672a66c2d4ea7212c14f8f1b5a62b78dTom Gundersen<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering<!-- $LastChangedRevision$ -->
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering<!--
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering Licensed to the Apache Software Foundation (ASF) under one or more
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering contributor license agreements. See the NOTICE file distributed with
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering this work for additional information regarding copyright ownership.
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering The ASF licenses this file to You under the Apache License, Version 2.0
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering (the "License"); you may not use this file except in compliance with
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering the License. You may obtain a copy of the License at
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering http://www.apache.org/licenses/LICENSE-2.0
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering Unless required by applicable law or agreed to in writing, software
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering distributed under the License is distributed on an "AS IS" BASIS,
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering See the License for the specific language governing permissions and
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering limitations under the License.
d3fae78fe86f1dfcdb07fd613ccbb3adf547a617Josh Triplett-->
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<modulesynopsis metafile="mod_cache.xml.meta">
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<name>mod_cache</name>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<description>Content cache keyed to URIs.</description>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<status>Extension</status>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<sourcefile>mod_cache.c</sourcefile>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<identifier>cache_module</identifier>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<summary>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <note type="warning">This module should be used with care and
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek can be used to circumvent <directive
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek module="mod_authz_host">Allow</directive> and <directive
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek module="mod_authz_host">Deny</directive> directives. You
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek should not enable caching for any content to which you wish
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek to limit access by client host name, address or environment
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek variable.</note>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <p><module>mod_cache</module> implements an <a
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> compliant HTTP
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek content cache that can be used to cache either local or proxied content.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <module>mod_cache</module> requires the services of one or more storage
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek management modules. Two storage management modules are included in
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek the base Apache distribution:</p>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <dl>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <dt><module>mod_disk_cache</module></dt>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <dd>implements a disk based storage manager.</dd>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <dt><module>mod_mem_cache</module></dt>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <dd>implements a memory based storage manager.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <module>mod_mem_cache</module> can be configured to operate in two
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek modes: caching open file descriptors or caching objects in heap storage.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <module>mod_mem_cache</module> can be used to cache locally generated content
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek or to cache backend server content for <module>mod_proxy</module> when
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek configured using <directive module="mod_proxy">ProxyPass</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek (aka <dfn>reverse proxy</dfn>)</dd>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </dl>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
3ba3a79df4ae094d1008c04a9af8d1ff970124c4Zbigniew Jędrzejewski-Szmek <p>Content is stored in and retrieved from the cache using URI based keys. Content with
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek access protection is not cached.</p>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <p>Further details, discussion, and examples, are provided in the
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <a href="/caching.html">Caching Guide</a>.</p>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek</summary>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<seealso><a href="/caching.html">Caching Guide</a></seealso>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<section id="related"><title>Related Modules and Directives</title>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <related>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <modulelist>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <module>mod_disk_cache</module>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <module>mod_mem_cache</module>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </modulelist>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directivelist>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_disk_cache">CacheRoot</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_disk_cache">CacheDirLevels</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_disk_cache">CacheDirLength</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_disk_cache">CacheMinFileSize</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_disk_cache">CacheMaxFileSize</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_mem_cache">MCacheSize</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_mem_cache">MCacheMaxObjectCount</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_mem_cache">MCacheMinObjectSize</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_mem_cache">MCacheMaxObjectSize</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_mem_cache">MCacheRemovalAlgorithm</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <directive module="mod_mem_cache">MCacheMaxStreamingBuffer</directive>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </directivelist>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </related>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek</section>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<section id="sampleconf"><title>Sample Configuration</title>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <example><title>Sample httpd.conf</title>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek #<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek # Sample Cache Configuration<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek #<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek LoadModule cache_module modules/mod_cache.so<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek &lt;IfModule mod_cache.c&gt;<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <indent>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek #LoadModule disk_cache_module modules/mod_disk_cache.so<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek # If you want to use mod_disk_cache instead of mod_mem_cache,<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek # uncomment the line above and comment out the LoadModule line below.<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek &lt;IfModule mod_disk_cache.c&gt;<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <indent>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheRoot c:/cacheroot<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheEnable disk /<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheDirLevels 5<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheDirLength 3<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </indent>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek &lt;/IfModule&gt; <br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek LoadModule mem_cache_module modules/mod_mem_cache.so<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek &lt;IfModule mod_mem_cache.c&gt;<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <indent>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheEnable mem /<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek MCacheSize 4096<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek MCacheMaxObjectCount 100<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek MCacheMinObjectSize 1<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek MCacheMaxObjectSize 2048<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </indent>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek &lt;/IfModule&gt;<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek # When acting as a proxy, don't cache the list of security updates<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheDisable http://security.update.server/update-list/<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </indent>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek &lt;/IfModule&gt;
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </example>
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek</section>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<directivesynopsis>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<name>CacheEnable</name>
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek<description>Enable caching of specified URLs using a specified storage
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmekmanager</description>
71418295125c542d3edd1e7251bb0701ef1af89bZbigniew Jędrzejewski-Szmek<syntax>CacheEnable <var>cache_type</var> <var>url-string</var></syntax>
71418295125c542d3edd1e7251bb0701ef1af89bZbigniew Jędrzejewski-Szmek<contextlist><context>server config</context><context>virtual host</context>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek</contextlist>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
71418295125c542d3edd1e7251bb0701ef1af89bZbigniew Jędrzejewski-Szmek<usage>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <p>The <directive>CacheEnable</directive> directive instructs
71418295125c542d3edd1e7251bb0701ef1af89bZbigniew Jędrzejewski-Szmek <module>mod_cache</module> to cache urls at or below
71418295125c542d3edd1e7251bb0701ef1af89bZbigniew Jędrzejewski-Szmek <var>url-string</var>. The cache storage manager is specified with the
71418295125c542d3edd1e7251bb0701ef1af89bZbigniew Jędrzejewski-Szmek <var>cache_type</var> argument. <var>cache_type</var> <code> mem</code>
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek instructs <module>mod_cache</module> to use the memory based storage
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek manager implemented by <module>mod_mem_cache</module>.
b938cb902c3b5bca807a94b277672c64d6767886Jan Engelhardt <var>cache_type</var> <code>disk</code> instructs
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek <module>mod_cache</module> to use the disk based storage manager
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek implemented by <module>mod_disk_cache</module>.
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek <var>cache_type</var> <code>fd</code> instructs
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <module>mod_cache</module> to use the file descriptor cache implemented
71418295125c542d3edd1e7251bb0701ef1af89bZbigniew Jędrzejewski-Szmek by <module>mod_mem_cache</module>.</p>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <p>In the event that the URL space overlaps between different
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek <directive>CacheEnable</directive> directives (as in the example below),
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek each possible storage manager will be run until the first one that
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek actually processes the request. The order in which the storage managers are
7284335adbb8cb2bc9c11f9e102906da1bf71145Zbigniew Jędrzejewski-Szmek run is determined by the order of the <directive>CacheEnable</directive>
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek directives in the configuration file.</p>
7284335adbb8cb2bc9c11f9e102906da1bf71145Zbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek <example>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheEnable mem /manual<br />
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering CacheEnable fd /images<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheEnable disk /<br />
7284335adbb8cb2bc9c11f9e102906da1bf71145Zbigniew Jędrzejewski-Szmek </example>
7284335adbb8cb2bc9c11f9e102906da1bf71145Zbigniew Jędrzejewski-Szmek
7284335adbb8cb2bc9c11f9e102906da1bf71145Zbigniew Jędrzejewski-Szmek <p>When acting as a forward proxy server, <var>url-string</var> can
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek also be used to specify remote sites and proxy protocols which
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek caching should be enabled for.</p>
b938cb902c3b5bca807a94b277672c64d6767886Jan Engelhardt
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek <example>
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek # Cache proxied url's<br />
9407bc2d03b6405754807b6f38c8ca95b4fc1f40Zbigniew Jędrzejewski-Szmek CacheEnable disk /<br /><br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek # Cache FTP-proxied url's<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheEnable disk ftp://<br /><br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek # Cache content from www.apache.org<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek CacheEnable disk http://www.apache.org/<br />
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek </example>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek</usage>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek</directivesynopsis>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
3ba3a79df4ae094d1008c04a9af8d1ff970124c4Zbigniew Jędrzejewski-Szmek<directivesynopsis>
3ba3a79df4ae094d1008c04a9af8d1ff970124c4Zbigniew Jędrzejewski-Szmek<name>CacheDisable</name>
3ba3a79df4ae094d1008c04a9af8d1ff970124c4Zbigniew Jędrzejewski-Szmek<description>Disable caching of specified URLs</description>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<syntax>CacheDisable <var> url-string</var></syntax>
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek<contextlist><context>server config</context><context>virtual host</context>
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering</contextlist>
c91faef3b3facfdf13282aee957af25dd555890bLennart Poettering
<usage>
<p>The <directive>CacheDisable</directive> directive instructs
<module>mod_cache</module> to <em>not</em> cache urls at or below
<var>url-string</var>.</p>
<example><title>Example</title>
CacheDisable /local_files
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheMaxExpire</name>
<description>The maximum time in seconds to cache a document</description>
<syntax>CacheMaxExpire <var>seconds</var></syntax>
<default>CacheMaxExpire 86400 (one day)</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>The <directive>CacheMaxExpire</directive> directive specifies the maximum number of
seconds for which cachable HTTP documents will be retained without checking the origin
server. Thus, documents will be out of date at most this number of seconds. This maximum
value is enforced even if an expiry date was supplied with the document.</p>
<example>
CacheMaxExpire 604800
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheMinExpire</name>
<description>The minimum time in seconds to cache a document</description>
<syntax>CacheMinExpire <var>seconds</var></syntax>
<default>CacheMinExpire 0</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>The <directive>CacheMinExpire</directive> directive specifies the minimum number of
seconds for which cachable HTTP documents will be retained without checking the origin
server. This is only used if no valid expire time was supplied with the document.</p>
<example>
CacheMinExpire 3600
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheDefaultExpire</name>
<description>The default duration to cache a document when no expiry date is specified.</description>
<syntax>CacheDefaultExpire <var>seconds</var></syntax>
<default>CacheDefaultExpire 3600 (one hour)</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>The <directive>CacheDefaultExpire</directive> directive specifies a default time,
in seconds, to cache a document if neither an expiry date nor last-modified date are provided
with the document. The value specified with the <directive>CacheMaxExpire</directive>
directive does <em>not</em> override this setting.</p>
<example>
CacheDefaultExpire 86400
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheIgnoreNoLastMod</name>
<description>Ignore the fact that a response has no Last Modified
header.</description>
<syntax>CacheIgnoreNoLastMod On|Off</syntax>
<default>CacheIgnoreNoLastMod Off</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>Ordinarily, documents without a last-modified date are not cached.
Under some circumstances the last-modified date is removed (during
<module>mod_include</module> processing for example) or not provided
at all. The <directive>CacheIgnoreNoLastMod</directive> directive
provides a way to specify that documents without last-modified dates
should be considered for caching, even without a last-modified date.
If neither a last-modified date nor an expiry date are provided with
the document then the value specified by the
<directive>CacheDefaultExpire</directive> directive will be used to
generate an expiration date.</p>
<example>
CacheIgnoreNoLastMod On
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheIgnoreCacheControl</name>
<description>Ignore request to not serve cached content to client</description>
<syntax>CacheIgnoreCacheControl On|Off</syntax>
<default>CacheIgnoreCacheControl Off</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>Ordinarily, requests containing a Cache-Control: no-cache or
Pragma: no-cache header value will not be served from the cache. The
<directive>CacheIgnoreCacheControl</directive> directive allows this
behavior to be overridden. <directive>CacheIgnoreCacheControl</directive>
On tells the server to attempt to serve the resource from the cache even
if the request contains no-cache header values. Resources requiring
authorization will <em>never</em> be cached.</p>
<example>
CacheIgnoreCacheControl On
</example>
<note type="warning"><title>Warning:</title>
This directive will allow serving from the cache even if the client has
requested that the document not be served from the cache. This might
result in stale content being served.
</note>
</usage>
<seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
<seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>CacheIgnoreQueryString</name>
<description>Ignore query string when caching</description>
<syntax>CacheIgnoreQueryString On|Off</syntax>
<default>CacheIgnoreQueryString Off</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>Ordinarily, requests with query string parameters are cached separately
for each unique query string. This is according to RFC 2616/13.9 done only
if an expiration time is specified. The
<directive>CacheIgnoreQueryString</directive> directive tells the cache to
cache requests even if no expiration time is specified, and to reply with
a cached reply even if the query string differs. From a caching point of
view the request is treated as if having no query string when this
directive is enabled.</p>
<example>
CacheIgnoreQueryString On
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheLastModifiedFactor</name>
<description>The factor used to compute an expiry date based on the
LastModified date.</description>
<syntax>CacheLastModifiedFactor <var>float</var></syntax>
<default>CacheLastModifiedFactor 0.1</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>In the event that a document does not provide an expiry date but does
provide a last-modified date, an expiry date can be calculated based on
the time since the document was last modified. The
<directive>CacheLastModifiedFactor</directive> directive specifies a
<var>factor</var> to be used in the generation of this expiry date
according to the following formula:
<code>expiry-period = time-since-last-modified-date * <var>factor</var>
expiry-date = current-date + expiry-period</code>
For example, if the document was last modified 10 hours ago, and
<var>factor</var> is 0.1 then the expiry-period will be set to
10*0.1 = 1 hour. If the current time was 3:00pm then the computed
expiry-date would be 3:00pm + 1hour = 4:00pm.
If the expiry-period would be longer than that set by
<directive>CacheMaxExpire</directive>, then the latter takes
precedence.</p>
<example>
CacheLastModifiedFactor 0.5
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheIgnoreHeaders</name>
<description>Do not store the given HTTP header(s) in the cache.
</description>
<syntax>CacheIgnoreHeaders <var>header-string</var> [<var>header-string</var>] ...</syntax>
<default>CacheIgnoreHeaders None</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>According to RFC 2616, hop-by-hop HTTP headers are not stored in
the cache. The following HTTP headers are hop-by-hop headers and thus
do not get stored in the cache in <em>any</em> case regardless of the
setting of <directive>CacheIgnoreHeaders</directive>:</p>
<ul>
<li><code>Connection</code></li>
<li><code>Keep-Alive</code></li>
<li><code>Proxy-Authenticate</code></li>
<li><code>Proxy-Authorization</code></li>
<li><code>TE</code></li>
<li><code>Trailers</code></li>
<li><code>Transfer-Encoding</code></li>
<li><code>Upgrade</code></li>
</ul>
<p><directive>CacheIgnoreHeaders</directive> specifies additional HTTP
headers that should not to be stored in the cache. For example, it makes
sense in some cases to prevent cookies from being stored in the cache.</p>
<p><directive>CacheIgnoreHeaders</directive> takes a space separated list
of HTTP headers that should not be stored in the cache. If only hop-by-hop
headers not should be stored in the cache (the RFC 2616 compliant
behaviour), <directive>CacheIgnoreHeaders</directive> can be set to
<code>None</code>.</p>
<example><title>Example 1</title>
CacheIgnoreHeaders Set-Cookie
</example>
<example><title>Example 2</title>
CacheIgnoreHeaders None
</example>
<note type="warning"><title>Warning:</title>
If headers like <code>Expires</code> which are needed for proper cache
management are not stored due to a
<directive>CacheIgnoreHeaders</directive> setting, the behaviour of
mod_cache is undefined.
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheStorePrivate</name>
<description>Attempt to cache responses that the server has marked as private</description>
<syntax>CacheStorePrivate On|Off</syntax>
<default>CacheStorePrivate Off</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>Ordinarily, responses with Cache-Control: private header values will not
be stored in the cache. The <directive>CacheStorePrivate</directive>
directive allows this behavior to be overridden.
<directive>CacheStorePrivate</directive> On
tells the server to attempt to cache the resource even if it contains
private header values. Resources requiring authorization will
<em>never</em> be cached.</p>
<example>
CacheStorePrivate On
</example>
<note type="warning"><title>Warning:</title>
This directive will allow caching even if the upstream server has
requested that the resource not be cached. This directive is only
ideal for a 'private' cache.
</note>
</usage>
<seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
<seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>CacheStoreNoStore</name>
<description>Attempt to cache requests or responses that have been marked as no-store.</description>
<syntax>CacheStoreNoStore On|Off</syntax>
<default>CacheStoreNoStore Off</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>Ordinarily, requests or responses with Cache-Control: no-store header
values will not be stored in the cache. The
<directive>CacheStoreNoCache</directive> directive allows this
behavior to be overridden. <directive>CacheStoreNoCache</directive> On
tells the server to attempt to cache the resource even if it contains
no-store header values. Resources requiring authorization will
<em>never</em> be cached.</p>
<example>
CacheStoreNoStore On
</example>
<note type="warning"><title>Warning:</title>
As described in RFC 2616, the no-store directive is intended to
"prevent the inadvertent release or retention of sensitive information
(for example, on backup tapes)." Enabling this option could store
sensitive information in the cache. You are hereby warned.
</note>
</usage>
<seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
<seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
</directivesynopsis>
</modulesynopsis>