使用 open_file_cache 提高静态缓存效率

open_file_cache 会告诉 Nginx 去缓存打开的文件,“未找到”的错误,有关文件的元数据和他们的权限,等等。

这样做的好处是,一个高需求的文件要求时,Nginx 的可以立即开始发送数据;而且也知道立即发送一个 404,如果一个文件掉失了(找不到要求的文件),等等。

但是,有一个不太理想的缺点:如果磁盘上有变化,服务器不会立即作出反应。

配置例子:

open_file_cache max=1000 inactive=20s; 
open_file_cache_valid    30s; 
open_file_cache_min_uses 2;
open_file_cache_errors   on;

open_file_cache 可以在 http{},server{},location{} 使用

解释:

非活动的(没要求到的文件)会在20秒后从缓存中释放。
而活动(最近要求的文件)每30秒重新验证一次。
描述符(Descriptor)将不会被缓存,除非它们在20秒内(非活动时间)的至少用2次。
最近使用的文件描述符,在任何时候最多可以缓存1000个。

注:
Descriptors:打开的文件的大小、修改时间等信息

扩展阅读:
wiki.nginx.org