]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_cache_disk.html.en
Fix alignment in a <highlight> block.
[apache] / docs / manual / mod / mod_cache_disk.html.en
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>mod_cache_disk - Apache HTTP Server Version 2.5</title>
11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
14 <script src="../style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
18 <body>
19 <div id="page-header">
20 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
21 <p class="apache">Apache HTTP Server Version 2.5</p>
22 <img alt="" src="../images/feather.png" /></div>
23 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
24 <div id="path">
25 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Modules</a></div>
26 <div id="page-content">
27 <div id="preamble"><h1>Apache Module mod_cache_disk</h1>
28 <div class="toplang">
29 <p><span>Available Languages: </span><a href="../en/mod/mod_cache_disk.html" title="English">&nbsp;en&nbsp;</a> |
30 <a href="../fr/mod/mod_cache_disk.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
31 <a href="../ja/mod/mod_cache_disk.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
32 <a href="../ko/mod/mod_cache_disk.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
33 </div>
34 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Disk based storage module for the HTTP caching filter.</td></tr>
35 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
36 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>cache_disk_module</td></tr>
37 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_cache_disk.c</td></tr></table>
38 <h3>Summary</h3>
39
40     <p><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code> implements a disk based storage
41     manager for <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
42
43     <p>The headers and bodies of cached responses are stored separately on
44     disk, in a directory structure derived from the md5 hash of the cached
45     URL.</p>
46
47     <p>Multiple content negotiated responses can be stored concurrently,
48     however the caching of partial content is not yet supported by this
49     module.</p>
50
51     <p>Atomic cache updates to both header and body files are achieved
52     without the need for locking by storing the device and inode numbers of
53     the body file within the header file. This has the side effect that
54     cache entries manually moved into the cache will be ignored.</p>
55
56     <p>The <code class="program"><a href="../programs/htcacheclean.html">htcacheclean</a></code> tool is provided to list cached
57     URLs, remove cached URLs, or to maintain the size of the disk cache
58     within size and/or inode limits. The tool can be run on demand, or
59     can be daemonized to offer continuous monitoring of directory sizes.</p>
60
61     <div class="note"><h3>Note:</h3>
62       <p><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code> requires the services of
63       <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>, which must be
64       loaded before mod_cache_disk.</p>
65     </div>
66     <div class="note"><h3>Note:</h3>
67       <p><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code> uses the sendfile feature to
68       serve files from the cache when supported by the platform, and
69       when enabled with <code class="directive"><a href="../mod/core.html#enablesendfile">EnableSendfile</a></code>.
70       However, per-directory and .htaccess configuration of
71       <code class="directive"><a href="../mod/core.html#enablesendfile">EnableSendfile</a></code> are ignored by
72       <code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code> as the corresponding settings are not
73       available to the module when a request is being served from the
74       cache.</p>
75     </div>
76 </div>
77 <div id="quickview"><h3 class="directives">Directives</h3>
78 <ul id="toc">
79 <li><img alt="" src="../images/down.gif" /> <a href="#cachedirlength">CacheDirLength</a></li>
80 <li><img alt="" src="../images/down.gif" /> <a href="#cachedirlevels">CacheDirLevels</a></li>
81 <li><img alt="" src="../images/down.gif" /> <a href="#cachemaxfilesize">CacheMaxFileSize</a></li>
82 <li><img alt="" src="../images/down.gif" /> <a href="#cacheminfilesize">CacheMinFileSize</a></li>
83 <li><img alt="" src="../images/down.gif" /> <a href="#cachereadsize">CacheReadSize</a></li>
84 <li><img alt="" src="../images/down.gif" /> <a href="#cachereadtime">CacheReadTime</a></li>
85 <li><img alt="" src="../images/down.gif" /> <a href="#cacheroot">CacheRoot</a></li>
86 </ul>
87 <h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_cache_disk">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_cache_disk">Report a bug</a></li></ul><h3>See also</h3>
88 <ul class="seealso">
89 <li><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code></li>
90 <li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li>
91 <li><a href="../caching.html">Caching Guide</a></li>
92 <li><a href="#comments_section">Comments</a></li></ul></div>
93
94 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
95 <div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">Directive</a> <a title="Permanent link" href="#cachedirlength" class="permalink">&para;</a></h2>
96 <table class="directive">
97 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The number of characters in subdirectory names</td></tr>
98 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheDirLength <var>length</var></code></td></tr>
99 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheDirLength 2</code></td></tr>
100 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
101 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
102 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_disk</td></tr>
103 </table>
104     <p>The <code class="directive">CacheDirLength</code> directive sets the number
105     of characters for each subdirectory name in the cache hierarchy. It can
106     be used in conjunction with <code class="directive">CacheDirLevels</code> to
107     determine the approximate structure of your cache hierarchy.</p>
108     <p>A high value for <code class="directive">CacheDirLength</code> combined
109     with a low value for <code class="directive">CacheDirLevels</code> will result in
110     a relatively flat hierarchy, with a large number of subdirectories at each
111     level.</p>
112
113     <div class="note">
114       <p>The result of <code class="directive"><a href="#cachedirlevels">CacheDirLevels</a></code>* <code class="directive">CacheDirLength</code>
115       must not be higher than 20.</p>
116     </div>
117
118
119 </div>
120 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
121 <div class="directive-section"><h2><a name="CacheDirLevels" id="CacheDirLevels">CacheDirLevels</a> <a name="cachedirlevels" id="cachedirlevels">Directive</a> <a title="Permanent link" href="#cachedirlevels" class="permalink">&para;</a></h2>
122 <table class="directive">
123 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The number of levels of subdirectories in the
124 cache.</td></tr>
125 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheDirLevels <var>levels</var></code></td></tr>
126 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheDirLevels 2</code></td></tr>
127 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
128 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
129 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_disk</td></tr>
130 </table>
131     <p>The <code class="directive">CacheDirLevels</code> directive sets the number
132     of subdirectory levels in the cache. Cached data will be saved this
133     many directory levels below the <code class="directive"><a href="#cacheroot">CacheRoot</a></code> directory.</p>
134     <p>A high value for <code class="directive">CacheDirLevels</code> combined
135     with a low value for <code class="directive">CacheDirLength</code> will result in
136     a relatively deep hierarchy, with a small number of subdirectories at each
137     level.</p>
138
139     <div class="note">
140       <p>The result of <code class="directive">CacheDirLevels</code>*
141       <code class="directive"><a href="#cachedirlength">CacheDirLength</a></code> must
142       not be higher than 20.</p>
143     </div>
144
145
146 </div>
147 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
148 <div class="directive-section"><h2><a name="CacheMaxFileSize" id="CacheMaxFileSize">CacheMaxFileSize</a> <a name="cachemaxfilesize" id="cachemaxfilesize">Directive</a> <a title="Permanent link" href="#cachemaxfilesize" class="permalink">&para;</a></h2>
149 <table class="directive">
150 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum size (in bytes) of a document to be placed in the
151 cache</td></tr>
152 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheMaxFileSize <var>bytes</var></code></td></tr>
153 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheMaxFileSize 1000000</code></td></tr>
154 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
155 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
156 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_disk</td></tr>
157 </table>
158     <p>The <code class="directive">CacheMaxFileSize</code> directive sets the
159     maximum size, in bytes, for a document to be considered for storage in
160     the cache.</p>
161
162     <pre class="prettyprint lang-config">CacheMaxFileSize 64000</pre>
163
164
165 </div>
166 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
167 <div class="directive-section"><h2><a name="CacheMinFileSize" id="CacheMinFileSize">CacheMinFileSize</a> <a name="cacheminfilesize" id="cacheminfilesize">Directive</a> <a title="Permanent link" href="#cacheminfilesize" class="permalink">&para;</a></h2>
168 <table class="directive">
169 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The minimum size (in bytes) of a document to be placed in the
170 cache</td></tr>
171 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheMinFileSize <var>bytes</var></code></td></tr>
172 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheMinFileSize 1</code></td></tr>
173 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
174 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
175 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_disk</td></tr>
176 </table>
177     <p>The <code class="directive">CacheMinFileSize</code> directive sets the
178     minimum size, in bytes, for a document to be considered for storage
179     in the cache.</p>
180
181     <pre class="prettyprint lang-config">CacheMinFileSize 64</pre>
182
183
184 </div>
185 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
186 <div class="directive-section"><h2><a name="CacheReadSize" id="CacheReadSize">CacheReadSize</a> <a name="cachereadsize" id="cachereadsize">Directive</a> <a title="Permanent link" href="#cachereadsize" class="permalink">&para;</a></h2>
187 <table class="directive">
188 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The minimum size (in bytes) of the document to read and be cached
189   before sending the data downstream</td></tr>
190 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheReadSize <var>bytes</var></code></td></tr>
191 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheReadSize 0</code></td></tr>
192 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
193 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
194 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_disk</td></tr>
195 </table>
196     <p>The <code class="directive">CacheReadSize</code> directive sets the
197     minimum amount of data, in bytes, to be read from the backend before the
198     data is sent to the client. The default of zero causes all data read of
199     any size to be passed downstream to the client immediately as it arrives.
200     Setting this to a higher value causes the disk cache to buffer at least
201     this amount before sending the result to the client. This can improve
202     performance when caching content from a reverse proxy.</p>
203
204     <p>This directive only takes effect when the data is being saved to the
205     cache, as opposed to data being served from the cache.</p>
206
207     <pre class="prettyprint lang-config">CacheReadSize 102400</pre>
208
209
210 </div>
211 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
212 <div class="directive-section"><h2><a name="CacheReadTime" id="CacheReadTime">CacheReadTime</a> <a name="cachereadtime" id="cachereadtime">Directive</a> <a title="Permanent link" href="#cachereadtime" class="permalink">&para;</a></h2>
213 <table class="directive">
214 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The minimum time (in milliseconds) that should elapse while reading
215   before data is sent downstream</td></tr>
216 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheReadTime <var>milliseconds</var></code></td></tr>
217 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheReadTime 0</code></td></tr>
218 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
219 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
220 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_disk</td></tr>
221 </table>
222     <p>The <code class="directive">CacheReadTime</code> directive sets the minimum amount
223     of elapsed time that should pass before making an attempt to send data
224     downstream to the client. During the time period, data will be buffered
225     before sending the result to the client. This can improve performance when
226     caching content from a reverse proxy.</p>
227
228     <p>The default of zero disables this option.</p>
229
230     <p>This directive only takes effect when the data is being saved to the
231     cache, as opposed to data being served from the cache. It is recommended
232     that this option be used alongside the
233     <code class="directive"><a href="#cachereadsize">CacheReadSize</a></code> directive to
234     ensure that the server does not buffer excessively should data arrive faster
235     than expected.</p>
236
237     <pre class="prettyprint lang-config">CacheReadTime 1000</pre>
238
239
240 </div>
241 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
242 <div class="directive-section"><h2><a name="CacheRoot" id="CacheRoot">CacheRoot</a> <a name="cacheroot" id="cacheroot">Directive</a> <a title="Permanent link" href="#cacheroot" class="permalink">&para;</a></h2>
243 <table class="directive">
244 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The directory root under which cache files are
245 stored</td></tr>
246 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheRoot <var>directory</var></code></td></tr>
247 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
248 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
249 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_disk</td></tr>
250 </table>
251     <p>The <code class="directive">CacheRoot</code> directive defines the name of
252     the directory on the disk to contain cache files. If the <code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code> module has been loaded or compiled in to the
253     Apache server, this directive <em>must</em> be defined. Failing to
254     provide a value for <code class="directive">CacheRoot</code> will result in
255     a configuration file processing error. The <code class="directive"><a href="#cachedirlevels">CacheDirLevels</a></code> and <code class="directive"><a href="#cachedirlength">CacheDirLength</a></code> directives define
256     the structure of the directories under the specified root directory.</p>
257
258     <pre class="prettyprint lang-config">CacheRoot c:/cacheroot</pre>
259
260
261 </div>
262 </div>
263 <div class="bottomlang">
264 <p><span>Available Languages: </span><a href="../en/mod/mod_cache_disk.html" title="English">&nbsp;en&nbsp;</a> |
265 <a href="../fr/mod/mod_cache_disk.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
266 <a href="../ja/mod/mod_cache_disk.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
267 <a href="../ko/mod/mod_cache_disk.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
268 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
269 <script type="text/javascript"><!--//--><![CDATA[//><!--
270 var comments_shortname = 'httpd';
271 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_cache_disk.html';
272 (function(w, d) {
273     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
274         d.write('<div id="comments_thread"><\/div>');
275         var s = d.createElement('script');
276         s.type = 'text/javascript';
277         s.async = true;
278         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
279         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
280     }
281     else {
282         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
283     }
284 })(window, document);
285 //--><!]]></script></div><div id="footer">
286 <p class="apache">Copyright 2019 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>
287 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
288 if (typeof(prettyPrint) !== 'undefined') {
289     prettyPrint();
290 }
291 //--><!]]></script>
292 </body></html>