Apache 模块 mod_cache_disk

Description:HTTP 缓存过滤器的基于磁盘的存储模块。
Status:Extension
Module Identifier:cache_disk_module
Source File:mod_cache_disk.c

Summary

mod_cache_diskmod_cache实现基于磁盘的存储 Management 器。

缓存的响应的 Headers 和正文分别存储在磁盘上,处于从缓存的 URL 的 md5 哈希派生的目录结构中。

可以同时存储多个内容协商的响应,但是此模块尚不支持部分内容的缓存。

通过将主体文件的设备和 inode 编号存储在头文件中,可以实现对头文件和主体文件的原子高速缓存更新,而无需锁定。这样做的副作用是,手动移入缓存的缓存条目将被忽略。

提供htcacheclean工具可以列出缓存的 URL,删除缓存的 URL 或将磁盘缓存的大小保持在大小和/或 inode 限制之内。该工具可以按需运行,也可以守护程序提供对目录大小的连续监视。

Note:

mod_cache_disk需要mod_cache的服务,该服务必须在 mod_cache_disk 之前加载。

Note:

当平台支持并启用EnableSendfile时,mod_cache_disk使用 sendfile 功能从缓存中提供文件。但是,EnableSendfile的按目录和.htaccess 配置将被mod_cache_disk忽略,因为当从缓存中处理请求时,相应的设置对模块不可用。

CacheDirLength Directive

Description:子目录名称中的字符数
Syntax:CacheDirLength length
Default:CacheDirLength 2
Context:服务器配置,虚拟主机
Status:Extension
Module:mod_cache_disk

CacheDirLength伪指令设置高速缓存层次结构中每个子目录名称的字符数。可以将其与CacheDirLevels结合使用以确定缓存层次结构的大致结构。

CacheDirLength的高值与CacheDirLevels的低值将导致层次结构相对平坦,每个级别都有大量子目录。

Note

CacheDirLevels * CacheDirLength的结果不得大于 20.

CacheDirLevels Directive

Description:高速缓存中子目录的级别数。
Syntax:CacheDirLevels levels
Default:CacheDirLevels 2
Context:服务器配置,虚拟主机
Status:Extension
Module:mod_cache_disk

CacheDirLevels伪指令设置高速缓存中子目录级别的数量。缓存的数据将被保存在CacheRoot目录下的许多目录级别。

CacheDirLevels的较高值与CacheDirLength的较低值将导致层次结构相对较深,每个级别的子目录数量较少。

Note

CacheDirLevels * CacheDirLength的结果不得大于 20.

CacheMaxFileSize Directive

Description:要放入缓存中的文档的最大大小(以字节为单位)
Syntax:CacheMaxFileSize bytes
Default:CacheMaxFileSize 1000000
Context:服务器配置,虚拟主机,目录,.htaccess
Status:Extension
Module:mod_cache_disk

CacheMaxFileSize伪指令设置要考虑在高速缓存中存储的文档的最大大小(以字节为单位)。

CacheMaxFileSize 64000

CacheMinFileSize Directive

Description:要放入缓存中的文档的最小大小(以字节为单位)
Syntax:CacheMinFileSize bytes
Default:CacheMinFileSize 1
Context:服务器配置,虚拟主机,目录,.htaccess
Status:Extension
Module:mod_cache_disk

CacheMinFileSize伪指令设置要考虑在高速缓存中存储的文档的最小大小(以字节为单位)。

CacheMinFileSize 64

CacheReadSize Directive

Description:向下游发送数据之前要读取和缓存的文档的最小大小(以字节为单位)
Syntax:CacheReadSize bytes
Default:CacheReadSize 0
Context:服务器配置,虚拟主机,目录,.htaccess
Status:Extension
Module:mod_cache_disk

CacheReadSize指令设置在将数据发送到 Client 端之前要从后端读取的最小数据量(以字节为单位)。默认值为零,导致读取的任何大小的所有数据在到达时立即立即向下游传递到 Client 端。将此值设置为较高的值会使磁盘高速缓存在将结果发送到 Client 端之前至少缓冲此数量。从反向代理缓存内容时,这可以提高性能。

该指令仅在将数据保存到缓存中时才生效,而不是从缓存中提供数据。

CacheReadSize 102400

CacheReadTime Directive

Description:在向下游发送数据之前,读取时应经过的最短时间(以毫秒为单位)
Syntax:CacheReadTime milliseconds
Default:CacheReadTime 0
Context:服务器配置,虚拟主机,目录,.htaccess
Status:Extension
Module:mod_cache_disk

CacheReadTime指令设置尝试向下游发送数据到 Client 端之前应该经过的最短时间。在这段时间内,数据将被缓冲,然后再将结果发送给 Client 端。从反向代理缓存内容时,这可以提高性能。

默认值为零将禁用此选项。

该指令仅在将数据保存到缓存中时才生效,而不是从缓存中提供数据。建议将此选项与CacheReadSize指令一起使用,以确保如果数据到达速度比预期的更快,则服务器不会过多缓冲。

CacheReadTime 1000

CacheRoot Directive

Description:存储缓存文件的目录根目录
Syntax:CacheRoot directory
Context:服务器配置,虚拟主机
Status:Extension
Module:mod_cache_disk

CacheRoot指令定义磁盘上包含高速缓存文件的目录的名称。如果mod_cache_disk模块已加载或编译到 Apache 服务器中,则必须定义此伪指令。未能提供CacheRoot的值将导致配置文件处理错误。 CacheDirLevelsCacheDirLength伪指令定义了指定根目录下目录的结构。

CacheRoot c:/cacheroot