ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[很nice的介绍链接](https://www.cnblogs.com/chrdai/p/11355423.html) ## **一、Upstream_cache_status变量与值说明:** * [ ] *Miss : 为命中缓存* * [ ] * [ ] *HIT : 命中缓存* * [ ] * [ ] *EXPIRED : 缓存已经过期* * [ ] * [ ] *STALE : 命中了陈旧的缓存* * [ ] * [ ] *UPDATING : 内容陈旧,但正在更新* * [ ] * [ ] *REVALIDATED : nginx验证了陈旧的内容依然有效* * [ ] * [ ] *BYPASS : 响应是从原始服务器获得的* 代码演示下游服务器代码示列: ``` proxy_cache_path /data/tmpcache levels=2:2 keys_zone=two:10m loader_threshold=300 loader_files=200 max_size=200m inactive=1m; server { server_name shop**.com.cn; root html/;  error_log logs/cacherr.log debug; #打开DEBUG日志能实时看查看问题 location /{ proxy_cache two; #用了 上面的keys_zone定义的two 并且缓存10分钟 proxy_cache_valid 200 1m; #如果是响应码200 则是1分钟有效期 add_header X-Cache-Status $upstream_cache_status; #这里添加了个头 值就是前面介绍缓存状态值 proxy_pass http://192.168.0.51:8012;; } } ``` **http response headers**效果如下: X-Cache-Status: **MISS**#这个就是我们在location 放的头部 值为缓存状态(无缓存) X-Cache-Status: **HIT**#我们发现 值边了 处于hit 命中状态 说明已经用的是缓存了(有缓存) ***** ## **二、proxy_cache_path 指令参数详解:** path : 定义缓存文件的存放位置 levels :定义缓存路径的目录层级,最多3级,每层目录长度为1或2字节 use_temp_path:如果设置on时,文件会放到proxy_temp_path定义的临时目录          如果设置off时 ,文件就会存放到默认的proxy_cache_path目录 keys_zone:name是共享内存的名字,由proxy_cache指令使用       size 是指共享内存大小,1mb大约可以存放8000个key inactive :在inactive时间内没有被访问的缓存会被淘汰掉 默认10分钟 max_size:设置最大的缓存文件大小,超出后由cache manager进程按LRU链表淘汰 manager_file :cache manager 进程在1次淘汰过程中,淘汰的最大文件数 默认100 manager_sleep :执行一次淘汰循环后 cache manager进程的休眠时间 默认200毫秒 manager_threshold :执行一次淘汰循环的最大耗时 默认50毫秒 loader_files : cache_loader 进程载入磁盘中缓存至共享内存,每批最多处理的文件数 默认100 loader_sleep : 执行一次缓存文件至共享内存后,进程休眠时间 默认200毫秒 loader_threshold : 每次载入缓存文件至共享内存的最大耗时 默认50毫秒 ***** **配置实例讲解** ``` #设置Web缓存区名称为cache_one, #内存缓存空间大小为200MB, #1天没有被访问的内容自动清除, #硬盘缓存空间大小为30GB。 proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; ```