Nginx作为静态web服务器——缓存原理

浏览器缓存

客户端无缓存的情况下

Nginx作为静态web服务器——缓存原理_第1张图片

客户端有缓存的情况下

Nginx作为静态web服务器——缓存原理_第2张图片

校验过期机制

本地客户端会检查Cache-Control(max-age)缓存是否过期,(max-age)为过期时间

Last-Modified

上次修改时间
 配合If-Modified-Since或者If-Unmodified-Since使用
 对比上次修改时间验证资源是否需要更新

ETag

数据签名
典型做法:对资源内容进行hash计算
配合If-Match或者Id-Non-Match使用
对比资源的签名判断是否使用缓存

请求原理

Nginx作为静态web服务器——缓存原理_第3张图片

配置语法-expires

添加Cache-Control、Expires头

Syntax:expires [modified] time;

              expires epoch |max|off;

Default:expires off;

Context:http,server,location,if in location

 

Nginx作为静态web服务器——缓存原理_第4张图片

Nginx作为静态web服务器——缓存原理_第5张图片

Nginx作为静态web服务器——缓存原理_第6张图片

Nginx作为静态web服务器——缓存原理_第7张图片

Cache-Control:max-age=0表示每次请求都跟服务器校验Last-Modified

配置语法-expires演示

将配置语法加进去

location ~ .*\.(htm|html) {
        expires 24h;            # 24小时查看一次是否更新
        root   /opt/app/code;
    }

检查语法后,重启nginx,访问地址http://192.168.96.188/test_expires.html

Nginx作为静态web服务器——缓存原理_第8张图片

这时候头部信息Cache-Control:max-age=86400表示86400秒跟服务器校验Last-Modified

你可能感兴趣的:(Nginx作为静态web服务器——缓存原理)