mirror of
https://github.com/apache/httpd.git
synced 2025-11-06 16:49:32 +03:00
within the mod_cache provider interface to support an "in" brigade and an "out" brigade instead of just a single input brigade. This gives a cache provider the option to consume only part of the brigade passed to it, rather than the whole brigade as was required before. This fixes an out of memory and a request timeout condition that would occur when the original document was a large file. Update the mod_disk_cache provider implementation to take into account the new API. Introduce CacheReadSize and CacheReadTime directives to mod_disk_cache to control the amount of data to attempt to cache before sending the data on to the client in the "out" brigade. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@996395 13f79535-47bb-0310-9956-ffa450edef68
243 lines
8.9 KiB
XML
243 lines
8.9 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
|
|
<!-- $LastChangedRevision$ -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You 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_disk_cache.xml.meta">
|
|
|
|
<name>mod_disk_cache</name>
|
|
<description>Content cache storage manager keyed to URIs</description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_disk_cache.c</sourcefile>
|
|
<identifier>disk_cache_module</identifier>
|
|
|
|
<summary>
|
|
<p><module>mod_disk_cache</module> implements a disk based storage
|
|
manager. It is primarily of use in conjunction with
|
|
<module>mod_cache</module>.</p>
|
|
|
|
<p>Content is stored in and retrieved from the cache using URI based
|
|
keys. Content with access protection is not cached.</p>
|
|
|
|
<p><program>htcacheclean</program> can be used to maintain the cache
|
|
size at a maximum level.</p>
|
|
|
|
<note><title>Note:</title>
|
|
<p><module>mod_disk_cache</module> requires the services of
|
|
<module>mod_cache</module>.</p>
|
|
</note>
|
|
<note><title>Note:</title>
|
|
<p><module>mod_disk_cache</module> uses the sendfile feature to
|
|
serve files from the cache when supported by the platform, and
|
|
when enabled with <directive module="core">EnableSendfile</directive>.
|
|
However, per-directory and .htaccess configuration of
|
|
<directive module="core">EnableSendfile</directive> are ignored by
|
|
<module>mod_disk_cache</module> as the corresponding settings are not
|
|
available to the module when a request is being served from the
|
|
cache.</p>
|
|
</note>
|
|
</summary>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheRoot</name>
|
|
<description>The directory root under which cache files are
|
|
stored</description>
|
|
<syntax>CacheRoot <var>directory</var></syntax>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>CacheRoot</directive> directive defines the name of
|
|
the directory on the disk to contain cache files. If the <module
|
|
>mod_disk_cache</module> module has been loaded or compiled in to the
|
|
Apache server, this directive <em>must</em> be defined. Failing to
|
|
provide a value for <directive>CacheRoot</directive> will result in
|
|
a configuration file processing error. The <directive
|
|
module="mod_disk_cache">CacheDirLevels</directive> and <directive
|
|
module="mod_disk_cache">CacheDirLength</directive> directives define
|
|
the structure of the directories under the specified root directory.</p>
|
|
|
|
<example>
|
|
CacheRoot c:/cacheroot
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheDirLevels</name>
|
|
<description>The number of levels of subdirectories in the
|
|
cache.</description>
|
|
<syntax>CacheDirLevels <var>levels</var></syntax>
|
|
<default>CacheDirLevels 2</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>CacheDirLevels</directive> directive sets the number
|
|
of subdirectory levels in the cache. Cached data will be saved this
|
|
many directory levels below the <directive module="mod_disk_cache"
|
|
>CacheRoot</directive> directory.</p>
|
|
<p>A high value for <directive>CacheDirLevels</directive> combined
|
|
with a low value for <directive>CacheDirLength</directive> will result in
|
|
a relatively deep hierarchy, with a small number of subdirectories at each
|
|
level.</p>
|
|
|
|
<note>
|
|
<p>The result of <directive>CacheDirLevels</directive>*
|
|
<directive module="mod_disk_cache">CacheDirLength</directive> must
|
|
not be higher than 20.</p>
|
|
</note>
|
|
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheDirLength</name>
|
|
<description>The number of characters in subdirectory names</description>
|
|
<syntax>CacheDirLength <var>length</var></syntax>
|
|
<default>CacheDirLength 2</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>CacheDirLength</directive> directive sets the number
|
|
of characters for each subdirectory name in the cache hierarchy. It can
|
|
be used in conjunction with <directive>CacheDirLevels</directive> to
|
|
determine the approximate structure of your cache hierarchy.</p>
|
|
<p>A high value for <directive>CacheDirLength</directive> combined
|
|
with a low value for <directive>CacheDirLevels</directive> will result in
|
|
a relatively flat hierarchy, with a large number of subdirectories at each
|
|
level.</p>
|
|
|
|
<note>
|
|
<p>The result of <directive module="mod_disk_cache"
|
|
>CacheDirLevels</directive>* <directive>CacheDirLength</directive>
|
|
must not be higher than 20.</p>
|
|
</note>
|
|
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheMinFileSize</name>
|
|
<description>The minimum size (in bytes) of a document to be placed in the
|
|
cache</description>
|
|
<syntax>CacheMinFileSize <var>bytes</var></syntax>
|
|
<default>CacheMinFileSize 1</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>CacheMinFileSize</directive> directive sets the
|
|
minimum size, in bytes, for a document to be considered for storage
|
|
in the cache.</p>
|
|
|
|
<example>
|
|
CacheMinFileSize 64
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheMaxFileSize</name>
|
|
<description>The maximum size (in bytes) of a document to be placed in the
|
|
cache</description>
|
|
<syntax>CacheMaxFileSize <var>bytes</var></syntax>
|
|
<default>CacheMaxFileSize 1000000</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>CacheMaxFileSize</directive> directive sets the
|
|
maximum size, in bytes, for a document to be considered for storage in
|
|
the cache.</p>
|
|
|
|
<example>
|
|
CacheMaxFileSize 64000
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheReadSize</name>
|
|
<description>The minimum size (in bytes) of the document to read and be cached
|
|
before sending the data downstream</description>
|
|
<syntax>CacheReadSize <var>bytes</var></syntax>
|
|
<default>CacheReadSize 0</default>
|
|
<contextlist><context>server config</context>
|
|
<context>virtual host</context>
|
|
<context>directory</context>
|
|
<context>.htaccess</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>CacheReadSize</directive> directive sets the
|
|
minimum amount of data, in bytes, to be read from the backend before the
|
|
data is sent to the client. The default of zero causes all data read of
|
|
any size to be passed downstream to the client immediately as it arrives.
|
|
Setting this to a higher value causes the disk cache to buffer at least
|
|
this amount before sending the result to the client. This can improve
|
|
performance when caching content from a reverse proxy.</p>
|
|
|
|
<p>This directive only takes effect when the data is being saved to the
|
|
cache, as opposed to data being served from the cache.</p>
|
|
|
|
<example>
|
|
CacheReadSize 102400
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheReadTime</name>
|
|
<description>The minimum time (in milliseconds) that should elapse while reading
|
|
before data is sent downstream</description>
|
|
<syntax>CacheReadTime <var>milliseconds</var></syntax>
|
|
<default>CacheReadTime 0</default>
|
|
<contextlist><context>server config</context>
|
|
<context>virtual host</context>
|
|
<context>directory</context>
|
|
<context>.htaccess</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>CacheReadTime</directive> directive sets the minimum amount
|
|
of elapsed time that should pass before making an attempt to send data
|
|
downstream to the client. During the time period, data will be buffered
|
|
before sending the result to the client. This can improve performance when
|
|
caching content from a reverse proxy.</p>
|
|
|
|
<p>The default of zero disables this option.</p>
|
|
|
|
<p>This directive only takes effect when the data is being saved to the
|
|
cache, as opposed to data being served from the cache. It is recommended
|
|
that this option be used alongside the
|
|
<directive module="mod_disk_cache">CacheReadSize</directive> directive to
|
|
ensure that the server does not buffer excessively should data arrive faster
|
|
than expected.</p>
|
|
|
|
<example>
|
|
CacheReadTime 1000
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|