相关模块mod_cache
mod_mem_cache
mod_disk_cache
mod_file_cache
相关指令CacheEnable
CacheDisable
MMapStatic
CacheFile
CacheFile
UseCanonicalName
CacheNegotiatedDocs
在一个请求的生存期中,mod_cache内可能会发生两个主要阶段。
首先,mod_cache将是一个URL映射模块,也就是说,如果一个URL已经被缓存并且这个缓存尚未失效,该请求将由mod_cache直接处理。
这也意味着在处理一个请求时通常还要发生的其他阶段:比如由mod_proxy或mod_rewrite处理的阶段,将不会发生。
不过,这正是将内容缓存起来的关键所在。[虽然某些阶段被省略了,但这正是启用缓冲特性的初衷:减少处理步骤以提高速度。]
如果这个URL不在缓存中,mod_cache将会在请求的处理过程中添加一个过滤器。
在Apache使用通常的方法定位内容之后,该过滤器将会在内容被用于服务以后运行。
如果该内容被确定为可以缓存,那么它将被保存在缓冲区中以便为将来的请求提供服务。
如果该URL存在于缓存中并且已经失效的话,该过滤器同样会被添加,但是mod_cache将 会同时向后端(backend)提交一个条件请求以确定缓存的版本是否是当前的最新版本。
如果是最新版本,那么它的元信息(meta- information)将会被更新并且使用这个缓存的版本来服务于该请求。
如果不是最新版本,那么过滤器将使用刚才为请求提供服务的最新内容更新缓存。