Nginx配置缓存
proxy_cache
proxy_cache off;
http, server, location
proxy_cache zone | off;
zone
:用于定义共享内存区域的名称。可以使用变量。此参数是proxy_cache_path
指令的基础。off
:表示禁用缓存。
proxy_cache_path
该指令可以配置缓存的路径,并设置相关的参数。
path
:设置缓存的路径。levels
:用于设置缓存的目录结构,例如levels=1:2
,意味着生成两层目录。该参数与proxy_cache_key
指令有关,proxy_cache_key
的默认值为$scheme$proxy_host$request_uri
,然后将获取到的值MD5加密,然后依次从末尾按照levels
的设置取值来创建目录。keys_zone
:其中name
为proxy_cache
定义的值。size
表示共享内存区域的大小。1M的内存可以存储大约8000个key。inactive
:指定缓存失效的时间,如果在该段时间内,缓存文件没被访问,缓存将被删除。max_size
:指定最大的缓存大小,当超出大小,会根据LRU算法,删除最近最少使用的数据。
缓存有效期
proxy_cache_valid
该指令可以设置不同响应码对应的缓存时间,超过时间缓存就会过期,但是不会删除缓存。
前面我们在配置proxy_cache_path
指令时,inactive
参数可以指定一定时间内缓存未被访问就会被删除。而proxy_cache_valid
指定的是缓存的过期时间,超过该时间缓存将会过期,但是不会被删除。
因此我们在配置的时候,一般inactive
的值会大于proxy_cache_valid
中的值,否则将会导致缓存还不过期就被删除了。
- 不指定响应码,则只对200、301和302进行缓存。
proxy_cache_valid 10m;
- 对指定响应码进行缓存。
proxy_cache_valid 200 301 10m;
- 对任