开启mod_file_cache模块,缓存静态文件

打开文件的动作本身就是一个造成延时的原因,特别是打开网络文件系统中的文件。通过维护一个保存高使用率文件的文件描述符的缓冲区,Apache就可以避免这种延时。经常被请求的极少改变的文件,被缓存,是一种技术,降低服务器负载。 mod_file_cache提供了两种技术来缓存经常请求的静态文件

缓冲文件(CacheFile)

存在于Apache中最基本的缓冲方式是由mod_file_cache实现的文件句柄(file-handle)缓冲。胜于缓存文件内容本身,这个缓冲区维护一张打开的文件描述符表,用于保存在配置文件中使用CacheFile指令指定的文件的文件句柄。

CacheFile指令指示Apache在启动时打开某个文件并且为所有之后对这个文件的访问重复使用这个文件句柄。

//示例  
CacheFile /usr/local/apache2/htdocs/index.html
  • 如果你打算使用这种方式缓存大量的文件句柄,你必须确保操作系统对同时打开的文件的数量限制是足够的。
  • 虽然使用CacheFile不会导致文件的内容被缓存,但是将会导致在Apache运行期间所有对文件的更改都不会生效。用于提供服务的文件的内容将从Apache启动以来一直保持不变。
  • 如果在Apache运行期间文件被删除了,Apache将会持续维护一个打开的文件描述符并且使用Apache启动时文件的内容来提供服务。这个通常也意味着虽然文件已经被删除,并且不在文件系统中显示出来,但是释放的空间并不会被覆盖,直到Apache被停止、文件描述符被关闭。所以,在文件系统上的每一个缓存文件,被修改或者删除后,你必须重新启动服务器,以保障内容被正确返回给请求者。

 

CacheEnable fd

mod_mem_cache也提供了一个文件句柄缓冲方案,可以通过CacheEnable指令来启用。

//示例 
CacheEnable fd /

与mod_cache的方案相比,这种方案更加智能:缓存内容失效以后相应的句柄将不再被维护。