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

当网站的部分内容,比如新闻站的图片,一旦发布就不太可能发生更改,此时需要用户在访问一次页面之后,把该页面的图片缓存在用户的浏览器端一段时间,就可以用到 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 配置成功。

Nginx 笔记与总结(14)expires 缓存设置的更多相关文章

  1. nginx之gzlib压缩,expires缓存

    gzip压缩网页内容的压缩编码与传输速度优化我们观察news.163.com的头信息请求:Accept-Encoding:gzip,deflate,sdch响应:Content-Encoding:gz ...

  2. 14 nginx 中配置 expires缓存提升网站负载

    一:nginx 中配置 expires缓存提升网站负载 对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的.我们希望 能否在用户访问一次后, 图片缓存在用户的浏览器端,且时间比较长的 ...

  3. Nginx网络架构实战学习笔记(三):nginx gzip压缩提升网站速度、expires缓存提升网站负载、反向代理实现nginx+apache动静分离、nginx实现负载均衡

    文章目录 nginx gzip压缩提升网站速度 expires缓存提升网站负载 反向代理实现nginx+apache动静分离 nginx实现负载均衡 nginx gzip压缩提升网站速度 网页内容的压 ...

  4. nginx缓存设置proxy_cache

    http://www.cnblogs.com/dudu/p/4597351.html http块: proxy_cache_path /tmp/cache levels=1:2 keys_zone=n ...

  5. Nginx对于图片,js等静态文件的缓存设置

    以下是自学it网--中级班上课笔记 网址:www.zixue.it Nginx对于图片,js等静态文件的缓存设置 注:这个缓存是指针对浏览器所做的缓存,不是指服务器端的数据缓存. 主要知识点: loc ...

  6. Nginx 静态资源缓存设置

    在开发调试web的时候,经常会碰到因浏览器缓存(cache)而经常要去清空缓存或者强制刷新来测试的烦恼,提供下apache不缓存配置和nginx不缓存配置的设置.在常用的缓存设置里面有两种方式,都是使 ...

  7. [转]Nginx 静态资源缓存设置

    本文转自:https://www.w3cschool.cn/nginxsysc/nginxsysc-cache.html 在开发调试web的时候,经常会碰到因浏览器缓存(cache)而经常要去清空缓存 ...

  8. nginx缓存设置

    http://linux008.blog.51cto.com/2837805/547236 目的:缓存nginx服务器的静态文件.如css,js,htm,html,jpg,gif,png,flv,sw ...

  9. nginx 缓存设置

    浏览器缓存原理 浏览器缓存 HTTP协议定义的缓存机制(如:Expires:Cache-control等) 2.浏览器无缓存 3.客户端有缓存 校验过期机制 校验是否过期                ...

随机推荐

  1. 连续自然数和(codevs 1312)

    题目描述 Description 对于一个自然数M,求出所有的连续的自然数段,使得这些连续自然数段的全部数字和为M.eg:1998+1999+2000+2001+2002=10000,所以从1998到 ...

  2. Android Studio安装与配置

    谷歌已经停止支持eclipse开发android了,转向android studio是大势所趋,笔者由于电脑配置的原因, 以前迟迟不愿意向android studio,现如今因为开始学习materia ...

  3. DOS下常用网络命令技巧

    DOS,即使对于许多自称了解计算机的人而言,也是一个比较陌生的词汇.然而,在网络管理过程中,DOS命令却是一个不可逾越的障碍,几乎所有的网络命令都运行在DOS界面.对初级用户而言,掌握一些常用网络命令 ...

  4. .net学习笔记----利用System.Drawing.Image类进行图片相关操作

    C#中对图片的操作主要是通过System.Drawing.Image等类进行. 一.将图片转换为字节流 /// <summary> /// 图片处理帮助类 /// </summary ...

  5. [转]Java 内部类笔记

    内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权 ...

  6. Android源码编译

    参考百度文章: http://jingyan.baidu.com/article/a501d80ce61ad0ec630f5e0b.html

  7. ionic react-native和native开发移动app到底那个好

    ionic react-native和native开发移动app那个好 ? 移动端开发如何选型?这里介绍一下我眼中的ionic,react-native,native 三种移动端开发选型对比.欢迎大家 ...

  8. Ninja - chromium核心构建工具

    转自:http://guiquanz.me/2014/07/28/a_intro_to_Ninja/ Ninja - chromium核心构建工具Jul 28, 2014 [在线编辑] 缘由 经过上次 ...

  9. Android UI组件学习

    android.view.View类是全部UI组件的父类. 如果一些属性的内容本类找不到的时候一定要到父类之中进行查找. 所谓的学习组件的过程就是一个文档的查找过程. ※ Android之中所有的组件 ...

  10. FPGA学习

    (一)Verilog HDL语法 一.模块 1.定义:一个电路模块/一种逻辑功能: 2.命名规则:只能是字母,数字,"$",或者'_',且开头必须是字母或者"_" ...