nginx客户端协商缓存
用nginx作为静态资源服务器,默认就走的协商缓存,同一个资源再次访问状态码是304
多次访问http://192.168.100.66/50x.html的结果

访问日志:状态204 文件大小0

修改50x.html后再访问

nginx访问日志 200,文件大小 498

点击跳转:协商缓存过程详解
nginx客户端强制缓存
在放回的响应头指定了这个文件缓存一定时间,如果客户端浏览器是默认设置,那么指定时间内就会从客户端浏览器缓存中读取文件
通过地址点击:1.png
200 from disk cache 就是走的本地缓存,nginx访问记录里面也没有,max-age=86400 就是24h

强制缓存需要连接跳转才有小欧,如果是浏览器里面直接输入地址这样只会走协商缓存。有些时候即便没有配置强制缓存,只有协商缓存浏览器也会走强制缓存。
强制缓存服务器端没有记录,浏览器状态码是200 from disk
协商缓存服务器端有记录,浏览器状态码304,服务器不会真实的返回文件,返回的空文件
nginx代理缓存
效果类似CDN加速,nginx本地缓存了上游代理服务器的资源
下面定义了一个缓存名字是cache_zone的代理缓存,缓存目录在 /etc/nginx/cache_temp
代理缓存配置
- 定义代理缓存
- proxy_cache_path 定义缓存
注意定义代理缓存实在http下面定义的
参数含义:
- path 缓存文件的存放路径;
- level path的目录层级;
- keys_zone 设置共享内存;
- inactive 在指定时间内没有被访问,缓存会被清理,默认10分钟;
- 使用代理缓存
- proxy_cache 指定使用前面定义的代理缓存的名字,可以在 http,server,location三个级别使用
- proxy_cache_key 缓存key,命中缓存的标致,一般都是资源的uri
- proxy_cache_valid 指定什么状态的返回值才会被缓存(一般成功的我们才会缓存)
- proxy_no_cache 那些东西不缓存,proxy_cache 指定当前于开启缓存,proxy_no_cache 排除部分资源。
- proxy_cache_bypass 指定符合条件的就穿透缓存,不符合的就从缓存取
- $upstream_cache_status 变量
它存储了缓存是否命中的信息,会设置在响应头信息中,在调试中非常有用。



所有评论(0)