zoukankan      html  css  js  c++  java
  • Nginx expires缓存

    expires缓存

    对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的.我们希望 能否在用户访问一次后, 图片缓存在用户的浏览器端,且时间比较长的缓存。可以, 用到 nginx的expires设置 。nginx中设置过期时间,非常简单。在location或if段里,来写。

    设置格式

    expires 30s;#30秒
    expires 30m;#30分钟
    expires 2h;#2个小时
    expires 30d;#30天

    注意点

    服务器的日期要准确,如果服务器的日期落后于实际日期,可能导致缓存失效。

    备注

    304 也是一种很好的缓存手段
    原理是: 服务器响应文件内容是,同时响应etag标签(内容的签名,内容一变,他也变), 和 last_modified_since 2个标签值
    浏览器下次去请求时,头信息发送这两个标签, 服务器检测文件有没有发生变化,如无,直接头信息返回 etag,last_modified_since
    浏览器知道内容无改变,于是直接调用本地缓存.
    这个过程,也请求了服务器,但是传着的内容极少.
    对于变化周期较短的,如静态html,js,css,比较适于用这个方式

    设置缓存案例

    修改nginx的conf文件,比如设置图片缓存。

    http{
        ...
        server {
            listen 80;
            server_name test.com
    
            location ~* .(jpg|jpeg|gif|bmp|png){
                expires 1d;#缓存1天
            }
    
        }
    }

    第一次访问网站中的图片

    这里写图片描述

    这里可以看到Cache-Control的内容是86400,这正好是1天的秒数,还有一个就是Expires的内容正好是一天后的请求时间。

    第二次访问网站中的图片

    我重新在火狐浏览器中测试了,第二次请求后并没有发现有请求,表示了我们的图片被浏览器缓存了。

    这里写图片描述

  • 相关阅读:
    React Native 安卓 程序运行报错: React Native version mismatch(转载)
    RN用蓝牙接入热敏打印机和智能电子秤(转载)
    安装加密用包
    React Native 调用 Web3(1.x) 的正确姿势
    Unable to resolve module crypto
    点击<tr>表格行元素进行跳转
    Phonegap环境配置
    登录记住密码功能的实现
    php+sqlserver实现分页效果
    php日期格式转换
  • 原文地址:https://www.cnblogs.com/cnsec/p/13406991.html
Copyright © 2011-2022 走看看