16、nginx缓存机制

1.proxy_cache相关指令

  • Nginx的 Web 缓存服务主要由 proxy_cache 相关指令集和fastcgi关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对 FastCGI的动态程序进行缓存。

1.1 proxy_cache 指令

语法: proxy_cache zone_name;
默认值: None
使用环境: http、server、location

  • 该指令用于设置哪个缓存区将被使用,zone_name 的值为 proxy_cache_path 指令创建的缓存区名称。

1.2 proxy_cache_path 指令

语法: proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];
默认值: None
使用环境: http

该指令用于设置缓存文件的存放路径。示例如下:

proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache one:500m inactive=1d max_size=30g;

  • 注意该指令只能在 htp标签内配置
    • levels 指定该缓存空间有两层 hash 目录,第一层目录为1个字母,第二层为2个字母。保存的文件名会类似/data0/proxy_cache_dir/c/29/7f54b2df7773722d382f4809d65029c
    • keys_zone参数用来为这个缓存区起名
    • 500m指内存缓存空间大小为500MB
    • inactive的1d指如果缓存数据在1天内没有被访问,将被删除
    • max_size的30g是指硬盘缓存空间为30GB。

1.3 proxy_cache_methods 指念

语法: proxy_cache_methods [GET HEAD POST];
默认值: proxy_cache_methods GET HEAD
使用环境:http、server、location

  • 该指令用于设置缓存哪些HTTP方法,默认缓存HTTP GET/HEAD方法,不缓存HTTP POST方法。

1.4 proxy_cache_min_uses指令

语法: proxy_cache_min_uses the_number;
默认值: proxy_cache_min_uses 1;
使用环境: http、server、location

  • 该指令用于设置缓存的最小使用次数,默认值为 1。

1.5 proxy_cache_valid 指令

语法: proxy_cache_valid reply_code [reply_code ...] time;
默认值: None
使用环境: http、server、location

  • 该指令用于对不同返回状态码的URL设置不同的缓存时间,例如:
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;

设置200 302状态的URL缓存10分钟,404状态的URL缓存1分钟。

proxy_cache_valid 5m;

如果不指定状态码,直接指定缓存时间,则只有200、301、302 状态的URL缓存5分钟

proxy_cache_valid  200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;

对没有单独设置的状态码,全部设置缓存时间为 1 分钟。

1.6 proxy_cache_key 指令

语法: proxy_cache_key line;
默认值: None
使用环境: http、server、location

  • 该指令用来设置 Web 缓存的 Key 值,Nginx 根据 Key值md5 哈希存储缓存。一般根据$host(域名)、$request_uri(请求的路径)等变量组合成proxy_cache key。例如:

    proxy_cache_key "$host:$server_port$uri$isargs$args";
    

posted on   ccblblog  阅读(43)  评论(0编辑  收藏  举报

(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示