mirror of
https://github.com/apache/httpd.git
synced 2025-06-03 10:42:03 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@102617 13f79535-47bb-0310-9956-ffa450edef68
335 lines
13 KiB
XML
335 lines
13 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
|
|
|
|
<!--
|
|
Copyright 2002-2004 The Apache Software Foundation
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_cache.xml.meta">
|
|
|
|
<name>mod_cache</name>
|
|
<description>Content cache keyed to URIs.</description>
|
|
<status>Experimental</status>
|
|
<sourcefile>mod_cache.c</sourcefile>
|
|
<identifier>cache_module</identifier>
|
|
|
|
<summary>
|
|
<note type="warning">
|
|
This module is experimental. Documentation is still under development...
|
|
</note>
|
|
|
|
<p><module>mod_cache</module> implements an <a
|
|
href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> compliant HTTP
|
|
content cache that can be used to cache either local or proxied content.
|
|
<module>mod_cache</module> requires the services of one or more storage
|
|
management modules. Two storage management modules are included in
|
|
the base Apache distribution:</p>
|
|
<dl>
|
|
<dt><module>mod_disk_cache</module></dt>
|
|
<dd>implements a disk based storage manager.</dd>
|
|
|
|
<dt><module>mod_mem_cache</module></dt>
|
|
<dd>implements a memory based storage manager.
|
|
<module>mod_mem_cache</module> can be configured to operate in two
|
|
modes: caching open file descriptors or caching objects in heap storage.
|
|
<module>mod_mem_cache</module> can be used to cache locally generated content
|
|
or to cache backend server content for <module>mod_proxy</module> when
|
|
configured using <directive module="mod_proxy">ProxyPass</directive>
|
|
(aka <dfn>reverse proxy</dfn>)</dd>
|
|
</dl>
|
|
|
|
<p>Content is stored in and retrieved from the cache using URI based keys. Content with
|
|
access protection is not cached.</p>
|
|
</summary>
|
|
|
|
<section id="related"><title>Related Modules and Directives</title>
|
|
<related>
|
|
<modulelist>
|
|
<module>mod_disk_cache</module>
|
|
<module>mod_mem_cache</module>
|
|
</modulelist>
|
|
<directivelist>
|
|
<directive module="mod_disk_cache">CacheRoot</directive>
|
|
<directive module="mod_disk_cache">CacheSize</directive>
|
|
<directive module="mod_disk_cache">CacheGcInterval</directive>
|
|
<directive module="mod_disk_cache">CacheDirLevels</directive>
|
|
<directive module="mod_disk_cache">CacheDirLength</directive>
|
|
<directive module="mod_disk_cache">CacheExpiryCheck</directive>
|
|
<directive module="mod_disk_cache">CacheMinFileSize</directive>
|
|
<directive module="mod_disk_cache">CacheMaxFileSize</directive>
|
|
<directive module="mod_disk_cache">CacheTimeMargin</directive>
|
|
<directive module="mod_disk_cache">CacheGcDaily</directive>
|
|
<directive module="mod_disk_cache">CacheGcUnused</directive>
|
|
<directive module="mod_disk_cache">CacheGcClean</directive>
|
|
<directive module="mod_disk_cache">CacheGcMemUsage</directive>
|
|
<directive module="mod_mem_cache">MCacheSize</directive>
|
|
<directive module="mod_mem_cache">MCacheMaxObjectCount</directive>
|
|
<directive module="mod_mem_cache">MCacheMinObjectSize</directive>
|
|
<directive module="mod_mem_cache">MCacheMaxObjectSize</directive>
|
|
<directive module="mod_mem_cache">MCacheRemovalAlgorithm</directive>
|
|
<directive module="mod_mem_cache">MCacheMaxStreamingBuffer</directive>
|
|
</directivelist>
|
|
</related>
|
|
</section>
|
|
|
|
<section id="sampleconf"><title>Sample Configuration</title>
|
|
<example><title>Sample httpd.conf</title>
|
|
#<br />
|
|
# Sample Cache Configuration<br />
|
|
#<br />
|
|
LoadModule cache_module modules/mod_cache.so<br />
|
|
<br />
|
|
<IfModule mod_cache.c><br />
|
|
<indent>
|
|
#LoadModule disk_cache_module modules/mod_disk_cache.so<br />
|
|
<IfModule mod_disk_cache.c><br />
|
|
<indent>
|
|
CacheRoot c:/cacheroot<br />
|
|
CacheSize 256<br />
|
|
CacheEnable disk /<br />
|
|
CacheDirLevels 5<br />
|
|
CacheDirLength 3<br />
|
|
</indent>
|
|
</IfModule> <br />
|
|
<br />
|
|
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
|
|
<IfModule mod_mem_cache.c><br />
|
|
<indent>
|
|
CacheEnable mem /<br />
|
|
MCacheSize 4096<br />
|
|
MCacheMaxObjectCount 100<br />
|
|
MCacheMinObjectSize 1<br />
|
|
MCacheMaxObjectSize 2048<br />
|
|
</indent>
|
|
</IfModule><br />
|
|
</indent>
|
|
</IfModule>
|
|
</example>
|
|
</section>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheEnable</name>
|
|
<description>Enable caching of specified URLs using a specified storage
|
|
manager</description>
|
|
<syntax>CacheEnable <var>cache_type</var> <var>url-string</var></syntax>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>CacheEnable</directive> directive instructs
|
|
<module>mod_cache</module> to cache urls at or below
|
|
<var>url-string</var>. The cache storage manager is specified with the
|
|
<var>cache_type</var> argument. <var>cache_type</var> <code> mem</code>
|
|
instructs <module>mod_cache</module> to use the memory based storage
|
|
manager implemented by <module>mod_mem_cache</module>.
|
|
<var>cache_type</var> <code>disk</code> instructs
|
|
<module>mod_cache</module> to use the disk based storage manager
|
|
implemented by <module>mod_disk_cache</module>.
|
|
<var>cache_type</var> <code>fd</code> instructs
|
|
<module>mod_cache</module> to use the file descriptor cache implemented
|
|
by <module>mod_mem_cache</module>.</p>
|
|
<p>In the event that the URL space overlaps between different
|
|
<directive>CacheEnable</directive> directives (as in the example below),
|
|
each possible storage manager will be run until the first one that
|
|
actually processes the request. The order in which the storage managers are
|
|
run is determined by the order of the <directive>CacheEnable</directive>
|
|
directives in the configuration file.</p>
|
|
|
|
<example>
|
|
CacheEnable mem /manual<br />
|
|
CacheEnable fd /images<br />
|
|
CacheEnable disk /<br />
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheDisable</name>
|
|
<description>Disable caching of specified URLs</description>
|
|
<syntax>CacheDisable <var> url-string</var></syntax>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<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>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 the fact that the client requested the content not be
|
|
cached.</description>
|
|
<syntax>CacheIgnoreCacheControl On|Off</syntax>
|
|
<default>CacheIgnoreCacheControl Off</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>Ordinarily, documents with no-cache or no-store header values will not be stored in the cache.
|
|
The <directive>CacheIgnoreCacheControl</directive> directive allows this behavior to be overridden.
|
|
<directive>CacheIgnoreCacheControl</directive> On tells the server to attempt to cache the document
|
|
even if it contains no-cache or no-store header values. Documents requiring authorization will
|
|
<em>never</em> be cached.</p>
|
|
|
|
<example>
|
|
CacheIgnoreCacheControl 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>CacheForceCompletion</name>
|
|
<description>Percentage of document served, after which the server
|
|
will complete caching the file even if the request is cancelled.</description>
|
|
<syntax>CacheForceCompletion <var>Percentage</var></syntax>
|
|
<default>CacheForceCompletion 60</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>Ordinarily, if a request is cancelled while the response is being
|
|
cached and delivered to the client the processing of the response will
|
|
stop and the cache entry will be removed. The
|
|
<directive>CacheForceCompletion</directive> directive specifies a
|
|
threshold beyond which the document will continue to be cached to
|
|
completion, even if the request is cancelled.</p>
|
|
|
|
<p>The threshold is a percentage specified as a value between
|
|
<code>1</code> and <code>100</code>. A value of <code>0</code>
|
|
specifies that the default be used. A value of <code>100</code>
|
|
will only cache documents that are served in their entirety. A value
|
|
between 60 and 90 is recommended.</p>
|
|
|
|
<example>
|
|
CacheForceCompletion 80
|
|
</example>
|
|
|
|
<note type="warning"><title>Note:</title>
|
|
This feature is currently <em>not</em> implemented.
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|