美文网首页
Nginx expires 缓存 [6]

Nginx expires 缓存 [6]

作者: 大鱼炖海棠 | 来源:发表于2019-07-22 16:31 被阅读0次

expires缓存

对于服务器上的一些资源,特别是静态资源,一旦发布再被改动的可能性很小,与其每次访问都从服务器端拉取,不如第一次访问后将这些资源保存在客户端本地,在资源有效期内再次访问时,可以直接从本地获取资源。大流量的网站应用中,该策略可以有效的节省巨大的带宽资源。nginx的expires缓存配置即可达到上述目的:

# expires配置位置:在location或if段里添加配置。
# 格式:
expires 30s       # 过期时间30秒
expires 30m      # 过期时间30分钟
expires 2h         # 过期时间2小时
expires 30d       # 过期时间30天

expires需要在服务端配置,expires添加的是该资源过期的日期,浏览器会根据该过期日期与客户端时间对比,如果过期时间还没到,则会去缓存中读取该资源,如果已经到期了,则浏览器判断为该资源已经不新鲜要重新从服务端获取。通过这种方式,可以实现直接从浏览器缓存中读取,而不需要去服务端判断是否已经缓存,避免了这次http请求。值得注意的是expires时间可能存在客户端时间跟服务端时间不一致的问题。所以,建议expires结合Cache-Control一起使用,大型网站中一起使用的情况比较多见。

expires配置效果验证:在/usr/local/nginx/html/static/image/目录下存放测试资源,在nginx.conf文件中添加location配置,设置资源的过期时间在15天后:

location ~ \.(gif|jpg|jpeg)$ {
    root   /usr/local/nginx/html/static/image/;
    index  index.html;
    expires 15d;
}

从前台发起请求:http://192.168.18.129:2345/langlangmarry.jpg

Expires & Last-Modified

上图可见http响应头中携带了资源过期时间和最后一次修改时间:

Expires: Wed, 26 Jun 2019 13:58:48 GMT
Last-Modified: Sun, 02 Jun 2019 10:53:26 GMT

该请求的响应码是:Status Code: 304 Not Modified。
304响应原理:服务器响应文件内容的同时,响应etag标签,即内容的签名和last-modified 两个标签值,浏览器下次去请求时,头信息携带这两个标签,服务器检测文件有无发生变化,如无,直接头信息返回etag和last-modified,告诉客户端资源未变更,直接调用本地缓存即可。
该过程也发出了请求,但是传输的内容极少,适用于变化周期很长的,如静态html,js ,css等资源。

关于expires和last-modified的详细解说,参考这篇文章:https://www.jb51.net/article/33214.htm

相关文章

  • Nginx expires 缓存 [6]

    expires缓存 对于服务器上的一些资源,特别是静态资源,一旦发布再被改动的可能性很小,与其每次访问都从服务器端...

  • Nginx静态缓存配置

    Nginx 静态缓存配置方法 我们需要用到nginx两个缓存模块Expires和proxy_cache。Nginx...

  • HTTP 缓存机制

    1 Expires 通过 Expires 在 HTTP 响应头中设定缓存时间;如,在 Nginx 在配置。 2 C...

  • Nginx的代理缓存设置

    Nginx的代理缓存设置 expires: 设置浏览器的缓存时间 (客户端缓存) 服务端设置缓存(反向代理缓存) ...

  • web开发中缓存优化

    浏览器缓存 强缓存 Expires (Expires:Thu, 30 Dec 2027 11:02:20 GMT...

  • Nginx配置gzip压缩&expires缓存

    一、开启gzip压缩 -> 修改配置文件vi /php/server/nginx/conf/nginx.conf,...

  • Nginx设置expires缓存提升网站负载

    一、缓存作用: 对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的.我们希望 能否在用户访问一次...

  • 前端缓存

    前端缓存 http缓存 Expires HTTP1.0的内容,服务器使用Expires头来告诉Web客户端它可以使...

  • 一次弄懂HTTP缓存相关的11个问题

    聊一聊浏览器的缓存机制 HTTP是如何控制缓存的 Expires字段是什么意思?有什么作用 Expires和Cac...

  • 2018-11-22

    Expires:文件、协议Cache-Control:高速缓存

网友评论

      本文标题:Nginx expires 缓存 [6]

      本文链接:https://www.haomeiwen.com/subject/pbmwlctx.html