nginx(缓存)

1、缓存的优点
nginx缓存,可以在一定程度上减少源服务器的处理请求压力。因为静态文件(比如css、js、图片)中,很多都是不经常更新的。nginx使用proxy_cache将用户的请求缓存到本地一个目录,下一个相同的请求可以直接调取缓存文件,就不用去请求服务器了。

2、配置说明
开启简单的缓存配置,只需要两个指令:proxy_cache_path和proxy_cache。
proxy_cache_path:配置缓存的存放地址和其他的一些常用配置
proxy_cache:启动缓存

3、proxy_cache_path配置
例子:
proxy_cache_path /path/to/cache levels=1:2 keys_zone=mycache:10m max_size=10g inactive=60m use_temp_path=off;
相关配置说明如下:
1)/path/to/cache,本地路径,用来设置nginx缓存资源的存放路径
2)levels,默认所有的缓存文件都放在同一个/path/to/cache下,但是会影响缓存的性能,因此通常会在/path/to/cache下面建立子目录用来分别存放不同的文件。假设levels=1:2,nginx为将要缓存的资源生成的key是f4cd0fbc769e94925ec5540b6a4136d0,那么key的最后一位0,以及倒数第2-3位6d作为二级的子目录,也就是该资源最终会被缓存到/path/to/cache/0/6d目录中
3)key_zone,在共享内存中设置一块存储区域来存放缓存的key和metadata(类似使用次数),这样nginx可以快速判断一个request是否命中或者未命中缓存。1m可以存储8000个key,10m可以存储80000个key。
4)max_size:最大cache空间,如果不指定,会使用掉所有的disk space,当达到配额后,会删除最少使用的cache文件。
5)inactive:未被访问文件在缓存中保留时间。本配置中如果60分钟未被访问则不论状态是否为expired,缓存控制程序会删掉文件。inactive默认是10分钟,需要注意的是,inactive和expired配置项的含义是不同的,expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问的缓存文件。
6)use_temp_path:如果为off,则nginx会将配置文件直接写入到指定的cache文件中,而不是用temp_path存储,官方建议为off,避免文件在不同文件系统中不必要的拷贝。

4、proxy_cache配置
proxy_cache on启用proxy_cache,并指定key_zone。如果proxy_cache off表示关掉缓存功能。