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