2.11 Nginx控制浏览器缓存

浏览器缓存:

加速用户访问,提升单个用户(浏览器访问者)体验,缓存在本地

Nginx缓存

缓存在nginx端,提升所有访问到nginx这一端的用户

提升访问上游(upstream)服务器的速度

用户访问仍然会产生请求流量

控制浏览器缓存:

 

 

如上图,用户请求的时候会分为两个地方的缓存。缓存静态资源。

 浏览器里面的缓存会加速单个用户的访问,nginx端的缓存会优化内网的传输 (nginx请求上游服务器的资源会有内网带宽的损耗 ,需要有一个请求和响应的时间。如果上游服务器的内容(静态文件)会被缓存到 nginx 端的话,内网的损耗就没那么大了,响应的也会减小用户整个请求的响应时间。 )

对于浏览器的缓存,可以使用expires指令做一定的控制,主要是针对一些静态资源文件缓存,比如 html、css、js、图片等。

expires [time]

location / {
    ...
    expires 10s;
}

然后请求的响应头部会多出属性

Cache-Control: max-age=10;# 相对过期时间。

可以发现 Exipires(过期时间) 的值 Date(当前时间) 的值恰好只差 10s

修改location 映射的资源之后,由于 修改时间 (响应头中的 Last_Modified)发生了更改,当再次请求时,就不会再使用缓存

expire @[time]指令可以指定一个以天为节点的过期时间

location / {
    ...
    expires @22h30m;
}

刷新浏览器之后,可以看到 Date 和 Expires 的时间差 等于 Cache-Control 中的 max-age

expires -[time]

表示缓存提前过期

location / {     

        ...     

        expires -1h;

}

expires epoch

表示 nocache,不设置 缓存,响应头中的 Cache-Control属性 是 no-cache

location / {     

        ...     

        expires   epoch;

}

expires off

expires 的默认设置,关闭状态,关闭并不代表没有 expires ,浏览器还是有默认机制,只不过是在Nginx 端没有添加关于 缓存的内容,在响应头里面是看不到的。

location / {     

        ...     

        expires  off;

}

expires max

设置缓存永不过期。Expires 会在 2037年过期。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lvdapiaoliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值