Nginx缓存服务

Nginx主要是在客户端和服务端之间提供缓存服务,作为代理缓存

配置语法

使用proxy_cache进行缓存配置

# 使用代理缓存前需要先定义好用于存放缓存文件的目录,配置在http
# levels 目录分级,一般为1:2,按照两层目录进行分级
# keys_zone name:空间名称,size:空间大小
# max_size 目录文件最大大小,用满会触发淘汰规则
# inactive 规定时间内缓存没有被访问就会被清理掉,单位为分钟
# use_temp_path 临时文件,一般建议关闭,开启时需要设置目录
proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone= name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];

# 配置开启缓存,默认为off,配置在server,locaiton
# zone 上面配置的keys_zone
proxy_cache zone|off

# 配置缓存过期周期,配置在server,location
# code 状态码
# 对应状态码的缓存时间,any表示任意
proxy_cache_valid [code...] time;

# 配置缓存的维度,配置在http,server,location中
proxy_cache_key string
# 默认
# $shceme 协议
proxy_cache_key $scheme$peoxy_host$request_uri;


# 配置指定页面不缓存,配置在http,server,location
proxy_no_cache string ...

分片请求

针对大文件,可以使用分片请求,首次请求时,nginx先获取服务端文件大小,然后根据配置进行切片,分割成多个小的请求

  • 优势:每个字请求收到的收据都会形成一个独立文件,一个请求断了,其他请求不会受影响(避免从头开始)
  • 缺点:当文件很大或者slice很小时,可能会导致文件描述符耗尽等情况
# 分片数量,默认是0,可以配置在http,server,location中
slice size;