珠海企业集团网站建设,网络营销怎么做有效,公司网站微信推广,学校要建个网站应该怎么做Nginx缓存 一般情况下系统用到的缓存有三种 服务端缓存#xff1a;缓存存在后端服务器#xff0c;如redis 代理缓存#xff1a;缓存存储在代理服务器或中间件#xff0c;内容从后端服务器获取#xff0c;保存在本地 客户端缓存#xff1a;缓存在浏览器 [ ] 什么时候会出现… Nginx缓存 一般情况下系统用到的缓存有三种 服务端缓存缓存存在后端服务器如redis 代理缓存缓存存储在代理服务器或中间件内容从后端服务器获取保存在本地 客户端缓存缓存在浏览器 [ ] 什么时候会出现304 服务器响应中包含有 ETag和 last-modified浏览器下次去请求时会发送这两个标签直接返回304 Not Modified来告诉浏览器该资源没有修改不需要从服务器获取最新的浏览器就会直接使用本地缓存 Nginx使用的缓存属于代理缓存 cache配置 Nginx通过proxy_cache来实现缓存。Buffer(缓冲)主要用于传输效率不同步或者优先级不相同的设备之间传输数据通过对一方数据进行临时存放在统一发送的方式传递给另一方以降低进程间的等待时间Cache(缓存)主要用于将硬盘上已有的数据在内存中建立缓存数据提高数据的访问效率。 而proxy_cache只有在Proxy Buffer机制开启的情况下Proxy Cache的配置才会发挥作用 相关配置 proxy_zone:zone | off 默认是off即关闭proxy_cache功能zone为用于存放缓存的内存区域名称可以在http/server、location块内使用 proxy_cache_path: path [levelslevels] keys_zone-name:size [inactivetime] [max_sizesize] 只能在http块内使用 path设置缓存数据存放的路径 levels设置目录层级如levels1:2表示有两个子目录 keys_zone 设置内存zone的名称和大小如keys_zonemy:10m inactive设置缓存多长时间失效当磁盘上的缓存数据在该时间段内没有被访问过就会失效数据将被删除默认10s max_size 设置硬盘中最多缓存多少数据数据超出则删除最少访问的数据 proxy_cache_methods GET HEAD POST 设置缓存哪些方法 proxy_cache_min_uses 1 设置缓存的最小使用次数 proxy_cache_valid code time 对不同的状态码缓存不同的时间 proxy_cache_key line 设置缓存的key值 示例 http {proxy_cache_path /var/www/cache #缓存地址levels1:2 #目录分级keys_zonetest_cache:10m #开启的keys空间名字:空间大小(1m可以存放8000个key)max_size10g #目录最大大小(超过时不常用的将被删除)inactive60m #60分钟内没有被访问的缓存将清理use_temp_pathoff; #是否开启存放临时文件目录关闭默认存储在缓存地址server {# 使用缓存location / {proxy_cache test_cache; #开启缓存对应的名称在keys_zone命名好proxy_cache_valid 200 304 12h; #状态码为200 304的缓存12小时proxy_cache_valid any 10m; #其他状态缓存10分钟proxy_cache_key $host$uri$is_args$args; #设置key值add_header Nginx-Cache $upstream_cache_status;}#不使用缓存if ($request_uri ~ ^/(login|register) ) { #当请求地址有login或register时set $nocache 1; #设置一个自定义变量为true}location / {proxy_no_cache $nocache $arg_nocache $arg_comment;proxy_no_cache $http_pragma $http_authoriztion;}}
}expires配置 location ~ .*.(jpg|jpeg|gif|png)$ {# 设置图片缓存过期时间expires 1d;
} # 匹配静态目录
location ~^ /(|css|js) / {expires 2h;
}响应会返回给浏览器Expires属性展示的是过期时间之后再次请求该资源时如果没有超过响应返回的Expires时则不需要向服务器访问直接从缓存中获取 静态资源缓存 # 缓存zone levels表示缓存层级以及目录位数 keys_zone表示缓存内存大小 inactive有效期 max_size所占用的最大磁盘大小proxy_cache_path /data/nginx/cache_ad levels1:2 keys_zonecache_cache_ad:100m inactive7d max_size200m;server { location / { # 缓存zone proxy_cache cache_ad; # 缓存key 进行md5 proxy_cache_key $host$uri$is_args$args; # 什么情况下进行缓存存储 proxy_cache_valid 200 304 12h; }} https://zhhll.icu/2021/服务器/Nginx/10.Nginx缓存/ 本文由 mdnice 多平台发布