<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_cache_socache - Apache HTTP Server Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<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">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
<p class="apache">Apache HTTP Server Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Server</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache Module mod_cache_socache</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/mod/mod_cache_socache.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_cache_socache.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Shared object cache (socache) based storage module for the
HTTP caching filter.</td></tr>
<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Module&nbsp;Identifier:</a></th><td>cache_socache_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Source&nbsp;File:</a></th><td>mod_cache_socache.c</td></tr></table>
<h3>Summary</h3>

    <p><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code> implements a shared object cache
    (socache) based storage manager for <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>

    <p>The headers and bodies of cached responses are combined, and stored
    underneath a single key in the shared object cache. A
    <a href="../socache.html">number of implementations</a> of shared object
    caches are available to choose from.</p>

    <p>Multiple content negotiated responses can be stored concurrently,
    however the caching of partial content is not yet supported by this
    module.</p>

    <pre class="prettyprint lang-config"># Turn on caching
CacheSocache shmcb
CacheSocacheMaxSize 102400
&lt;Location "/foo"&gt;
    CacheEnable socache
&lt;/Location&gt;

# Fall back to the disk cache
CacheSocache shmcb
CacheSocacheMaxSize 102400
&lt;Location "/foo"&gt;
    CacheEnable socache
    CacheEnable disk
&lt;/Location&gt;</pre>


    <div class="note"><h3>Note:</h3>
      <p><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code> requires the services of
      <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>, which must be loaded before
      <code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code>.</p>
    </div>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#cachesocache">CacheSocache</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachesocachemaxsize">CacheSocacheMaxSize</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachesocachemaxtime">CacheSocacheMaxTime</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachesocachemintime">CacheSocacheMinTime</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachesocachereadsize">CacheSocacheReadSize</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachesocachereadtime">CacheSocacheReadTime</a></li>
</ul>
<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_socache">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_cache_socache">Report a bug</a></li></ul><h3>See also</h3>
<ul class="seealso">
<li><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code></li>
<li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li>
<li><a href="../caching.html">Caching Guide</a></li>
</ul></div>

<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachesocache"><span id="CacheSocache">CacheSocache</span> Directive <a title="Permanent link" href="#cachesocache" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The shared object cache implementation to use</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheSocache <var>type[:args]</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_socache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.4.5 and later</td></tr>
</table>
    <p>The <code class="directive">CacheSocache</code> directive defines the name of
    the shared object cache implementation to use, followed by optional
    arguments for that implementation. A <a href="../socache.html">number of
    implementations</a> of shared object caches are available to choose
    from.</p>

    <pre class="prettyprint lang-config">CacheSocache shmcb</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachesocachemaxsize"><span id="CacheSocacheMaxSize">CacheSocacheMaxSize</span> Directive <a title="Permanent link" href="#cachesocachemaxsize" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum size (in bytes) of an entry to be placed in the
cache</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheSocacheMaxSize <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheSocacheMaxSize 102400</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_socache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.4.5 and later</td></tr>
</table>
    <p>The <code class="directive">CacheSocacheMaxSize</code> directive sets the
    maximum size, in bytes, for the combined headers and body of a document
    to be considered for storage in the cache. The value must be at
    least 1024 bytes. The larger the headers that
    are stored alongside the body, the smaller the body may be.</p>

    <p>The <code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code> module will only attempt to
    cache responses that have an explicit content length, or that are small
    enough to be written in one pass. This is done to allow the
    <code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code> module to have an opportunity to cache
    responses larger than those cacheable within
    <code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code>.</p>

    <pre class="prettyprint lang-config">CacheSocacheMaxSize 102400</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachesocachemaxtime"><span id="CacheSocacheMaxTime">CacheSocacheMaxTime</span> Directive <a title="Permanent link" href="#cachesocachemaxtime" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum time (in seconds) for a document to be placed in the
cache</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheSocacheMaxTime <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheSocacheMaxTime 86400</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_socache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.4.5 and later</td></tr>
</table>
    <p>The <code class="directive">CacheSocacheMaxTime</code> directive sets the
    maximum freshness lifetime, in seconds, for a document to be stored in
    the cache. This value overrides the freshness lifetime defined for the
    document by the HTTP protocol.</p>

    <pre class="prettyprint lang-config">CacheSocacheMaxTime 86400</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachesocachemintime"><span id="CacheSocacheMinTime">CacheSocacheMinTime</span> Directive <a title="Permanent link" href="#cachesocachemintime" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The minimum time (in seconds) for a document to be placed in the
cache</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheSocacheMinTime <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheSocacheMinTime 600</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_socache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.4.5 and later</td></tr>
</table>
    <p>The <code class="directive">CacheSocacheMinTime</code> directive sets the
    amount of seconds beyond the freshness lifetime of the response that the
    response should be cached for in the shared object cache. If a response is
    only stored for its freshness lifetime, there will be no opportunity to
    revalidate the response to make it fresh again.</p>

    <pre class="prettyprint lang-config">CacheSocacheMinTime 600</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachesocachereadsize"><span id="CacheSocacheReadSize">CacheSocacheReadSize</span> Directive <a title="Permanent link" href="#cachesocachereadsize" class="permalink">&para;</a></h2>
<table class="directive">
<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
  before sending the data downstream</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheSocacheReadSize <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheSocacheReadSize 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_socache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.4.5 and later</td></tr>
</table>
    <p>The <code class="directive">CacheSocacheReadSize</code> 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 slow 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>

    <pre class="prettyprint lang-config">CacheSocacheReadSize 102400</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachesocachereadtime"><span id="CacheSocacheReadTime">CacheSocacheReadTime</span> Directive <a title="Permanent link" href="#cachesocachereadtime" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The minimum time (in milliseconds) that should elapse while reading
  before data is sent downstream</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheSocacheReadTime <var>milliseconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheSocacheReadTime 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache_socache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.4.5 and later</td></tr>
</table>
    <p>The <code class="directive">CacheSocacheReadTime</code> 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
    <code class="directive"><a href="#cachesocachereadsize">CacheSocacheReadSize</a></code> directive
    to ensure that the server does not buffer excessively should data arrive faster
    than expected.</p>

    <pre class="prettyprint lang-config">CacheSocacheReadTime 1000</pre>


</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_cache_socache.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_cache_socache.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>