On this page
Apache 模块 mod_cache_disk
Description: | HTTP 缓存过滤器的基于磁盘的存储模块。 |
---|---|
Status: | Extension |
Module Identifier: | cache_disk_module |
Source File: | mod_cache_disk.c |
Summary
mod_cache_disk为mod_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
的值将导致配置文件处理错误。 CacheDirLevels和CacheDirLength伪指令定义了指定根目录下目录的结构。
CacheRoot c:/cacheroot