Apache HTTP 服务器版本 2.4
描述 | 符合 RFC 2616 的 HTTP 缓存过滤器。 |
---|---|
状态 | 扩展 |
模块标识符 | cache_module |
源文件 | mod_cache.c |
CacheQuickHandler
指令处于其默认值 on 时,Allow
和 Deny
指令将被绕过。您不应为任何您希望通过客户端主机名、地址或环境变量限制访问的内容启用快速处理程序缓存。mod_cache
实现了一个符合 RFC 2616 的 HTTP 内容缓存过滤器,支持缓存包含 Vary 标头的协商内容响应。
符合 RFC 2616 的缓存提供了一种机制来验证陈旧或过期的内容是否仍然新鲜,并且当源服务器通过遵守 If-None-Match HTTP 请求头来支持 条件请求 时,可以显着提高性能。只有在内容发生更改时才会从头开始重新生成内容,而不会在缓存条目过期时重新生成。
作为过滤器,mod_cache
可以放置在来自任何处理程序的内容前面,包括 平面文件(从慢速磁盘缓存到快速磁盘)、CGI 脚本或 动态内容生成器 的输出,或从 另一个服务器代理 的内容。
在默认配置中,mod_cache
将缓存过滤器尽可能地插入到过滤器堆栈中,利用 快速处理程序 在将内容返回给客户端时绕过所有每个请求处理。在这种操作模式下,mod_cache
可以被认为是安装在 Web 服务器前面的缓存代理服务器,同时在 Web 服务器本身内运行。
当使用 CacheQuickHandler
指令关闭快速处理程序时,就可以将 CACHE 过滤器插入到管理员选择的过滤器堆栈中的某个位置。这提供了在内容被 mod_include
过滤器个性化之前或可选地被 mod_deflate
过滤器压缩之前缓存内容的机会。
在正常操作下,mod_cache
将响应并可以被来自客户端请求中的 Cache-Control 和 Pragma 标头或来自响应中的服务器控制。在特殊情况下,mod_cache
可以配置为覆盖这些标头并强制执行特定于站点的行为,但是这种行为将仅限于此缓存,并且不会影响可能存在于客户端和服务器之间的其他缓存的操作,因此不建议除非绝对必要。
RFC 2616 允许缓存返回陈旧数据,同时从源服务器刷新现有的陈旧条目,并且当 CacheLock
指令配置适当时,mod_cache
支持这一点。此类响应将包含一个带有 110 响应代码的 Warning HTTP 标头。RFC 2616 还允许缓存返回陈旧数据,当尝试刷新陈旧数据返回错误 500 或更高时,这种行为默认情况下由 mod_cache
支持。此类响应将包含一个带有 111 响应代码的 Warning HTTP 标头。
mod_cache
需要一个或多个存储管理模块的服务。以下存储管理模块包含在基本 Apache 发行版中
mod_cache_disk
htcacheclean
工具来列出缓存的 URL、删除缓存的 URL 或在大小和 inode 限制内维护磁盘缓存的大小。mod_cache_socache
更多详细信息、讨论和示例,请参阅 缓存指南。
相关模块 | 相关指令 |
---|---|
# # Sample Cache Configuration # LoadModule cache_module modules/mod_cache.so <IfModule mod_cache.c> LoadModule cache_disk_module modules/mod_cache_disk.so <IfModule mod_cache_disk.c> CacheRoot "c:/cacheroot" CacheEnable disk "/" CacheDirLevels 5 CacheDirLength 3 </IfModule> # When acting as a proxy, don't cache the list of security updates CacheDisable "http://security.update.server/update-list/" </IfModule>
当缓存条目变得陈旧时,mod_cache
将向后端提交一个条件请求,该请求预计将确认缓存条目是否仍然新鲜,如果未更新,则发送更新的实体。
在缓存实体变得陈旧的时间和陈旧实体完全刷新的时间之间存在一小段时间。在繁忙的服务器上,在此期间可能会收到大量请求,并导致 雷鸣般的羊群 请求突然且不可预测地攻击后端。
为了控制雷鸣般的羊群,可以使用 CacheLock
指令来定义一个目录,在该目录中为 正在进行 的 URL 创建锁。锁用作其他请求的 提示,以抑制缓存尝试(其他人已经去获取实体),或者指示正在刷新陈旧条目(同时将返回陈旧内容)。
当实体首次被缓存时,将为该实体创建一个锁,直到响应被完全缓存。在锁的生命周期内,缓存将抑制对同一实体的第二次及后续缓存尝试。虽然这不会阻止雷鸣般的羊群,但它确实会阻止缓存同时尝试多次缓存同一实体。
当实体达到其新鲜度生命周期并变得陈旧时,将为该实体创建一个锁,直到响应被确认仍然新鲜,或者被后端替换。在锁的生命周期内,第二次及后续传入请求将导致返回陈旧数据,并且雷鸣般的羊群将被控制。
锁仅用作 提示,以使缓存对后端服务器更加温和,但是如果需要,可以覆盖锁。如果客户端发送带有 Cache-Control 标头的请求,强制重新加载,则任何可能存在的锁都将被忽略,并且将立即满足客户端的请求,并刷新缓存条目。
作为额外的安全机制,锁具有可配置的最大年龄。一旦达到此年龄,锁将被移除,并且新的请求将有机会创建新的锁。此最大年龄可以使用 CacheLockMaxAge
指令设置,默认值为 5 秒。
# # Enable the cache lock # <IfModule mod_cache.c> CacheLock on CacheLockPath "/tmp/mod_cache-lock" CacheLockMaxAge 5 </IfModule>
在默认的缓存操作模式下,缓存作为快速处理程序运行,简化了大部分服务器处理,并提供了可用的最高缓存性能。
在此模式下,缓存 **直接连接到** 服务器的前端,就像在服务器前面放置了一个独立的 RFC 2616 缓存代理一样。
虽然此模式提供了最佳性能,但管理员可能会发现,在某些情况下,他们可能希望在请求被缓存后对请求进行进一步处理,例如将个性化内容注入到缓存的页面中,或对内容应用授权限制。在这种情况下,管理员通常被迫在缓存服务器的后面或前面放置独立的反向代理服务器来实现这一点。
为了解决这个问题,可以将 CacheQuickHandler
指令设置为 **off**,服务器将正常处理非缓存请求处理的所有阶段,包括 **身份验证和授权** 阶段。
此外,管理员可以选择通过将 **CACHE** 过滤器添加到输出过滤器链中来指定 **过滤器链中缓存发生的精确位置**。
例如,要在对响应应用压缩之前缓存内容,请将 **CACHE** 过滤器放在 **DEFLATE** 过滤器之前,如下例所示
# Cache content before optional compression CacheQuickHandler off AddOutputFilterByType CACHE;DEFLATE text/plain
另一个选择是在 mod_include
(或其他内容处理过滤器)应用个性化之前缓存内容。在此示例中,包含 mod_include
识别的标签的模板在解析之前被缓存
# Cache content before mod_include and mod_deflate CacheQuickHandler off AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html
您可以在过滤器链中的任何位置放置 **CACHE** 过滤器。在此示例中,内容在被 mod_include
解析后被缓存,但在被 mod_deflate
处理之前。
# Cache content between mod_include and mod_deflate CacheQuickHandler off AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html
mod_cache
无法为您执行此操作。一旦 mod_cache
决定是否要从缓存中提供实体,该决定的详细原因将写入请求中的子进程环境中的 **cache-status** 键下。此原因可以使用 LogFormat
指令记录,如下所示
LogFormat "%{cache-status}e ..."
根据做出的缓存决策,原因也会写入子进程环境中的以下四个键之一,具体取决于情况
这使得可以根据以下示例支持对缓存请求的条件日志记录
CustomLog "cached-requests.log" common env=cache-hit CustomLog "uncached-requests.log" common env=cache-miss CustomLog "revalidated-requests.log" common env=cache-revalidate CustomLog "invalidated-requests.log" common env=cache-invalidate
对于模块作者,可以使用名为 cache_status 的钩子,允许模块以自定义方式响应上述缓存结果。
描述 | 当未指定过期日期时,缓存文档的默认持续时间。 |
---|---|
语法 | CacheDefaultExpire seconds |
默认 | CacheDefaultExpire 3600(一小时) |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
CacheDefaultExpire
指令指定一个默认时间(以秒为单位),用于缓存文档,前提是文档未提供过期日期或最后修改日期。使用 CacheMaxExpire
指令指定的 value 不会覆盖此设置。
CacheDefaultExpire 86400
描述 | 在响应中添加 X-Cache-Detail 标头。 |
---|---|
语法 | CacheDetailHeader on|off |
默认 | CacheDetailHeader off |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
兼容性 | 在 Apache 2.3.9 及更高版本中可用 |
当 CacheDetailHeader
指令打开时,将在响应中添加一个 **X-Cache-Detail** 标头,其中包含特定缓存决策的详细原因。
在开发缓存的 RESTful 服务期间,将有关缓存决策的附加信息写入响应标头可能很有用,以确认服务和客户端是否已正确使用 Cache-Control
和其他标头。
如果使用正常处理程序,此指令可能会出现在 <Directory>
或 <Location>
指令中。如果使用快速处理程序,此指令必须出现在服务器或虚拟主机上下文中,否则设置将被忽略。
# Enable the X-Cache-Detail header CacheDetailHeader on
X-Cache-Detail: "conditional cache hit: entity refreshed" from localhost
描述 | 禁用指定 URL 的缓存 |
---|---|
语法 | CacheDisable url-string | on |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
CacheDisable
指令指示 mod_cache
*不要* 缓存 url-string 及其以下的 URL。
CacheDisable "/local_files"
如果在 <Location>
指令中使用,则需要在 Location 以下指定路径,或者如果使用“on”一词,则将禁用整个位置的缓存。
<Location "/foo"> CacheDisable on </Location>
在 2.2.12 及更高版本中,可以使用 no-cache
环境变量来禁用更细粒度的资源集的缓存。
描述 | 使用指定的存储管理器启用指定 URL 的缓存 |
---|---|
语法 | CacheEnable cache_type [url-string] |
上下文 | 服务器配置、虚拟主机、目录 |
状态 | 扩展 |
模块 | mod_cache |
兼容性 | 在 2.2 及更早版本中,应用于转发代理内容的 '/' URL 字符串。 |
CacheEnable
指令指示 mod_cache
缓存 url-string 及其以下的 URL。缓存存储管理器使用 cache_type 参数指定。 CacheEnable
指令也可以放在 <Location>
或 <LocationMatch>
部分中,以指示内容是可缓存的。 cache_type disk
指示 mod_cache
使用由 mod_cache_disk
实现的基于磁盘的存储管理器。 cache_type socache
指示 mod_cache
使用由 mod_cache_socache
实现的基于共享对象缓存的存储管理器。
如果不同的 CacheEnable
指令之间的 URL 空间重叠(如以下示例所示),则将运行每个可能的存储管理器,直到第一个实际处理请求的存储管理器为止。存储管理器运行的顺序由配置文件中 CacheEnable
指令的顺序决定。 CacheEnable
指令在 <Location>
或 <LocationMatch>
部分中处理,优先于全局定义的 CacheEnable
指令。
在充当转发代理服务器时,url-string 必须至少以应启用缓存的协议开头。
# Cache content (normal handler only) CacheQuickHandler off <Location "/foo"> CacheEnable disk </Location> # Cache regex (normal handler only) CacheQuickHandler off <LocationMatch "foo$"> CacheEnable disk </LocationMatch> # Cache all but forward proxy url's (normal or quick handler) CacheEnable disk / # Cache FTP-proxied url's (normal or quick handler) CacheEnable disk ftp:// # Cache forward proxy content from www.example.org (normal or quick handler) CacheEnable disk http://www.example.org/
以 **"*"** 开头的主机名匹配所有以该后缀结尾的主机名。以 **"."** 开头的主机名匹配包含以下域名组件的所有主机名。
# Match www.example.org, and fooexample.org CacheEnable disk "http://*example.org/" # Match www.example.org, but not fooexample.org CacheEnable disk "http://.example.org/"
在 2.2.12 及更高版本中,可以使用 no-cache
环境变量来禁用更细粒度的资源集的缓存。
描述 | 在响应中添加 X-Cache 标头。 |
---|---|
语法 | CacheHeader on|off |
默认 | CacheHeader off |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
兼容性 | 在 Apache 2.3.9 及更高版本中可用 |
当 CacheHeader
指令打开时,将在响应中添加一个 **X-Cache** 标头,其中包含此响应的缓存状态。如果使用正常处理程序,此指令可能会出现在 <Directory>
或 <Location>
指令中。如果使用快速处理程序,此指令必须出现在服务器或虚拟主机上下文中,否则设置将被忽略。
# Enable the X-Cache header CacheHeader on
X-Cache: HIT from localhost
描述 | 忽略不要将缓存内容提供给客户端的请求 |
---|---|
语法 | CacheIgnoreCacheControl On|Off |
默认 | CacheIgnoreCacheControl Off |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
通常,包含 Cache-Control: no-cache
或 Pragma: no-cache 标头值的请求不会从缓存中提供。 CacheIgnoreCacheControl
指令允许覆盖此行为。 CacheIgnoreCacheControl On
告诉服务器尝试从缓存中提供资源,即使请求包含 no-cache 标头值。需要授权的资源 *永远不会* 被缓存。
CacheIgnoreCacheControl On
描述 | 不要将给定的 HTTP 标头存储在缓存中。 |
---|---|
语法 | CacheIgnoreHeaders header-string [header-string] ... |
默认 | CacheIgnoreHeaders None |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
根据 RFC 2616,逐跳 HTTP 头部不会存储在缓存中。以下 HTTP 头部是逐跳头部,因此无论 CacheIgnoreHeaders
的设置如何,都不会存储在缓存中。
Connection
Keep-Alive
Proxy-Authenticate
Proxy-Authorization
TE
Trailers
Transfer-Encoding
Upgrade
CacheIgnoreHeaders
指定了不应该存储在缓存中的其他 HTTP 头部。例如,在某些情况下,阻止 cookie 存储在缓存中是有意义的。
CacheIgnoreHeaders
接受一个以空格分隔的 HTTP 头部列表,这些头部不应该存储在缓存中。如果只需要存储逐跳头部(符合 RFC 2616 的行为),则可以将 CacheIgnoreHeaders
设置为 None
。
CacheIgnoreHeaders Set-Cookie
CacheIgnoreHeaders None
CacheIgnoreHeaders
设置,像 Expires
这样的用于正确缓存管理的头部没有被存储,则 mod_cache 的行为是未定义的。描述 | 忽略响应没有 Last Modified 头部的事实。 |
---|---|
语法 | CacheIgnoreNoLastMod On|Off |
默认 | CacheIgnoreNoLastMod Off |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
通常,没有最后修改日期的文档不会被缓存。在某些情况下,最后修改日期会被删除(例如,在 mod_include
处理期间)或根本没有提供。 CacheIgnoreNoLastMod
指令提供了一种方法来指定没有最后修改日期的文档应该被考虑缓存,即使没有最后修改日期。如果文档没有提供最后修改日期或过期日期,则将使用 CacheDefaultExpire
指令指定的值来生成过期日期。
CacheIgnoreNoLastMod On
描述 | 缓存时忽略查询字符串。 |
---|---|
语法 | CacheIgnoreQueryString On|Off |
默认 | CacheIgnoreQueryString Off |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
通常,带有查询字符串参数的请求会针对每个唯一的查询字符串单独缓存。这符合 RFC 2616/13.9,只有在指定了过期时间的情况下才会执行。 CacheIgnoreQueryString
指令告诉缓存即使没有指定过期时间也要缓存请求,并且即使查询字符串不同也要使用缓存的回复进行回复。从缓存的角度来看,当启用此指令时,请求被视为没有查询字符串。
CacheIgnoreQueryString On
描述 | 缓存时忽略 URL 中编码的已定义会话标识符。 |
---|---|
语法 | CacheIgnoreURLSessionIdentifiers identifier [identifier] ... |
默认 | CacheIgnoreURLSessionIdentifiers None |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
有时应用程序会将会话标识符编码到 URL 中,如下面的示例所示
/someapplication/image.gif;jsessionid=123456789
/someapplication/image.gif?PHPSESSIONID=12345678
这会导致可缓存资源针对每个会话单独存储,这通常是不希望的。 CacheIgnoreURLSessionIdentifiers
允许定义一个标识符列表,这些标识符将从用于标识缓存中实体的键中删除,这样可缓存资源就不会针对每个会话单独存储。
CacheIgnoreURLSessionIdentifiers None
清除忽略的标识符列表。否则,每个标识符都会被添加到列表中。
CacheIgnoreURLSessionIdentifiers jsessionid
CacheIgnoreURLSessionIdentifiers None
描述 | 覆盖反向代理缓存键的基 URL。 |
---|---|
语法 | CacheKeyBaseURL URL |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
兼容性 | 在 Apache 2.3.9 及更高版本中可用 |
当指定 CacheKeyBaseURL
指令时,提供的 URL 将用作基 URL 来计算反向代理配置中缓存键的 URL。当没有指定时,将使用当前虚拟主机的方案、主机名和端口来构建缓存键。当存在机器集群并且所有缓存条目都应该在同一个缓存键下缓存时,可以使用此指令指定一个新的基 URL。
# Override the base URL of the cache key. CacheKeyBaseURL "http://www.example.com/"
描述 | 用于根据 LastModified 日期计算过期日期的因子。 |
---|---|
语法 | CacheLastModifiedFactor float |
默认 | CacheLastModifiedFactor 0.1 |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
如果文档没有提供过期日期,但提供了最后修改日期,则可以根据文档最后修改的时间来计算过期日期。 CacheLastModifiedFactor
指令指定一个 factor 用于根据以下公式生成此过期日期: expiry-period = time-since-last-modified-date * factor expiry-date = current-date + expiry-period
例如,如果文档最后修改时间是 10 小时前,并且 factor 是 0.1,则过期时间将设置为 10*0.1 = 1 小时。如果当前时间是下午 3:00,则计算出的过期日期将是下午 3:00 + 1 小时 = 下午 4:00。如果过期时间超过 CacheMaxExpire
设置的时间,则后者优先。
CacheLastModifiedFactor 0.5
描述 | 启用雷群锁。 |
---|---|
语法 | CacheLock on|off |
默认 | CacheLock off |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
兼容性 | 在 Apache 2.2.15 及更高版本中可用 |
CacheLock
指令为给定的 URL 空间启用雷群锁。
在最小配置中,以下指令是为默认系统临时目录启用雷群锁所需的一切。
# Enable cache lock CacheLock on
描述 | 设置缓存锁的最大可能年龄。 |
---|---|
语法 | CacheLockMaxAge integer |
默认 | CacheLockMaxAge 5 |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
CacheLockMaxAge
指令指定任何缓存锁的最大年龄。
比此值(以秒为单位)更旧的锁将被忽略,下一个传入的请求将有机会重新建立锁。此机制可以防止缓慢的客户端花费过长时间来刷新实体。
描述 | 设置锁路径目录。 |
---|---|
语法 | CacheLockPath directory |
默认 | CacheLockPath /tmp/mod_cache-lock |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
CacheLockPath
指令允许您指定创建锁的目录。默认情况下,使用系统的临时文件夹。锁由仅存在于正在飞行的过时 URL 的空文件组成,因此比传统的磁盘缓存消耗的资源要少得多。
描述 | 缓存文档的最大时间(以秒为单位)。 |
---|---|
语法 | CacheMaxExpire seconds |
默认 | CacheMaxExpire 86400(一天) |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
CacheMaxExpire
指令指定可缓存 HTTP 文档在不检查源服务器的情况下保留的最大秒数。因此,文档最多会过时此秒数。即使文档提供了过期日期,也会强制执行此最大值。
CacheMaxExpire 604800
描述 | 缓存文档的最小时间(以秒为单位)。 |
---|---|
语法 | CacheMinExpire seconds |
默认 | CacheMinExpire 0 |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
CacheMinExpire
指令指定可缓存 HTTP 文档在不检查源服务器的情况下保留的最小秒数。这仅在文档没有提供有效的过期时间时使用。
CacheMinExpire 3600
描述 | 从快速处理程序运行缓存。 |
---|---|
语法 | CacheQuickHandler on|off |
默认 | CacheQuickHandler on |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_cache |
兼容性 | Apache HTTP Server 2.3.3 及更高版本 |
CacheQuickHandler
指令控制处理缓存的阶段。
在默认启用的配置中,缓存在快速处理程序阶段内运行。此阶段会缩短大多数服务器处理过程,并且代表了典型服务器最有效的运行模式。缓存**直接连接到**服务器的前面,并且避免了大多数服务器处理过程。
当禁用时,缓存作为正常的处理程序运行,并且在处理服务器请求时会受到所有阶段的限制。虽然此模式比默认模式慢,但它允许在需要完整处理的情况下使用缓存,例如,当内容受授权限制时。
# Run cache as a normal handler CacheQuickHandler off
此外,当快速处理程序被禁用时,管理员可以通过将**CACHE**过滤器添加到链中来选择在过滤器链中的确切位置执行缓存。
# Cache content before mod_include and mod_deflate CacheQuickHandler off AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html
如果 CACHE 过滤器被指定多次,则最后一个实例将应用。
描述 | 提供陈旧的内容来代替 5xx 响应。 |
---|---|
语法 | CacheStaleOnError on|off |
默认 | CacheStaleOnError on |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
兼容性 | 在 Apache 2.3.9 及更高版本中可用 |
当 CacheStaleOnError
指令被打开,并且缓存中存在陈旧数据时,缓存将通过返回陈旧数据而不是 5xx 响应来响应来自后端的 5xx 响应。虽然客户端发送的 Cache-Control 头部将被尊重,并且按要求将原始 5xx 响应返回给客户端,但返回给客户端的 5xx 响应不会使缓存中的内容失效。
# Serve stale data on error. CacheStaleOnError on
描述 | 尝试缓存服务器报告已过期的响应。 |
---|---|
语法 | CacheStoreExpired On|Off |
默认 | CacheStoreExpired Off |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
从 httpd 2.2.4 开始,已经过期的响应不会存储在缓存中。 CacheStoreExpired
指令允许覆盖此行为。 CacheStoreExpired
On 告诉服务器尝试缓存资源,即使它已经过时。后续请求将触发对源服务器的 If-Modified-Since 请求,如果后端资源没有改变,则响应可能会从缓存中满足。
CacheStoreExpired On
描述 | 尝试缓存已标记为 no-store 的请求或响应。 |
---|---|
语法 | CacheStoreNoStore On|Off |
默认 | CacheStoreNoStore Off |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
通常,带有 Cache-Control: no-store
头部值的请求或响应不会存储在缓存中。 CacheStoreNoStore
指令允许覆盖此行为。 CacheStoreNoStore
On 告诉服务器尝试缓存资源,即使它包含 no-store 头部值。需要授权的资源**永远不会**被缓存。
CacheStoreNoStore On
描述 | 尝试缓存服务器已标记为私有的响应 |
---|---|
语法 | CacheStorePrivate On|Off |
默认 | CacheStorePrivate Off |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 扩展 |
模块 | mod_cache |
通常,带有 Cache-Control: private
头值的响应不会存储在缓存中。CacheStorePrivate
指令允许覆盖此行为。CacheStorePrivate
On 告诉服务器尝试缓存资源,即使它包含私有头值。需要授权的资源将永远不会被缓存。
CacheStorePrivate On