• Nginx 笔记与总结(14)expires 缓存设置


    设置缓存,可以提高网站性能。

    当网站的部分内容,比如新闻站的图片,一旦发布就不太可能发生更改,此时需要用户在访问一次页面之后,把该页面的图片缓存在用户的浏览器端一段时间,就可以用到 nginx 的 expires 设置。

    expires 的语法参见:http://nginx.org/en/docs/http/ngx_http_core_module.html

    location = /images/default.gif {
        expires 30s; # 30m:30 分钟,2h:2 小时,30d:30 天
    }

    expires 的上下文包括 location、if in location

    【例】

    访问 http://192.168.254.100/

    图片 nginx.png 的响应状态是 200 ok

    此时图片的 http 头信息:

    再次刷新该页面

    图片 nginx.png 的响应状态是 304 Not Modified,即来自浏览器缓存

    此时图片的的 http 头信息:

    虽然图片该次是从浏览器缓存中读取,但是浏览器仍然像服务器发出了一次 http 请求

    如果要实现在一定时间内,浏览器不需要向服务器发送 http 请求,而直接从本地缓存中读取图片,可以在 nginx.conf 中进行配置:

    [root@localhost nginx]# vim conf/nginx.conf

    nginx.conf(添加 location 段 或者 修改 location ~ image ):

            location ~ image {
                root /var/www/;
    expires 1d; index index.html; }

    平滑重启 nginx

    强刷(ctrl+f5)该页面,此时图片的 http 响应信息:

    86400 是 1 天的秒数。

    再次刷新该页面(按浏览器的刷新按钮):

    在地址栏回车刷新页面:

     没有产生实际请求。

    在 chrome 浏览器下,通过地址栏回车刷新页面时的 http 响应信息:

     

     from cache 表名没有产生实际请求。

    修改 location ~ image 或者 添加 location,使缓存图片不仅限于 image 文件夹,而是网站中所有的 png|jpg|jpeg|gif (不区分大小写)图片都进行缓存设置:

            location ~* .(jpg|jpeg|png|gif){
                expires 1d;
            }

    平滑重启 nginx。

    验证:访问 ecshop 目录下的某个图片

     没有产生实际请求。

    点击浏览器刷新按钮,查看该图片的 http 响应头信息:

    说明此次 location 配置成功。

  • 相关阅读:
    Excel导出失败的提示
    C#中将一个引用赋值null的作用
    POJ2112Optimal Milking(二分法+floyd最短+网络流量)
    三年流水账
    OpenCV(C++接口)学习笔记1-图像读取、显示、保存
    thinkphp3.2 代码生成并点击验证码
    8.19! 今天我有18生日,点击阅读或顶部 尾随幸运的一天!生日知识!↓——【Badboy】
    如何系统地学习JavaScript
    HDU 3065 病毒在继续 (AC自己主动机)
    使用Canvas和Paint自己绘制折线图
  • 原文地址:https://www.cnblogs.com/dee0912/p/4743768.html
Copyright © 2020-2023  润新知