Apache的缓冲概述 - 缓冲概述

相关模块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)将会被更新并且使用这个缓存的版本来服务于该请求。

如果不是最新版本,那么过滤器将使用刚才为请求提供服务的最新内容更新缓存。