Nginx缓存设置案例详解


Posted in Servers onSeptember 15, 2021

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

nginx:
location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;add_header Pragma no-cache;
}

对于站点中不经常修改的静态内容(如图片,JS,CSS),可以在服务器中设置expires过期时间,控制浏览器缓存,达到有效减小带宽流量,降低服务器压力的目的。

以Nginx服务器为例:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
#过期时间为30天,
#图片文件不怎么更新,过期可以设大一点,
#如果频繁更新,则可以设置得小一点。
expires 30d;
}
location ~ .*\.(js|css)$ {
expires 10d;
}

背景】:Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。

相关资料

1、Cache-control策略

Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Expires。

http协议头Cache-Control

值可以是public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age

各个消息中的指令含义如下:

  • Public指示响应可被任何缓存区缓存。
  • Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
  • no-cache指示请求或响应消息不能缓存
  • no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
  • max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
  • min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
  • max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

Last-Modified/If-Modified-Since

  • Last-Modified/If-Modified-Since要配合Cache-Control使用。
  • Last-Modified:标示这个响应资源的最后修改时间。web服务器在响应请求时,告诉浏览器资源的最后修改时间。
  • If-Modified-Since:当资源过期时(使用Cache-Control标识的max-age),发现资源具有Last-Modified声明,则再次向web服务器请求时带上头 If-Modified-Since,表示请求时间。web服务器收到请求后发现有头If-Modified-Since 则与被请求资源的最后修改时间进行比对。若最后修改时间较新,说明资源又被改动过,则响应整片资源内容(写在响应消息包体内),HTTP 200;若最后修改时间较旧,说明资源无新修改,则响应HTTP 304 (无需包体,节省浏览),告知浏览器继续使用所保存的cache。

其最终达到的就是等效于设置这三类html缓存技术:

<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/> 
<meta http-equiv="expires" content="0"/>

到此这篇关于Nginx缓存设置案例详解的文章就介绍到这了,更多相关Nginx缓存设置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx tp3.2.3 404问题解决方案
Mar 31 Servers
Nginx进程管理和重载原理详解
Apr 22 Servers
学习nginx基础知识
Sep 04 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
详解nginx location指令
Jan 18 Servers
阿里云日志过滤器配置日志服务
Apr 09 Servers
Tomcat项目启动失败的原因和解决办法
Apr 20 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
win sever 2022如何占用操作主机角色
Jun 25 Servers
Windows Server 2008配置防火墙策略详解
Jun 28 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 Servers
图文详解Nginx版本平滑升级方案
Sep 15 #Servers
Nginx配置文件详解以及优化建议指南
Sep 15 #Servers
学习nginx基础知识
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 #Servers
Nginx使用Lua模块实现WAF的原理解析
Nginx部署vue项目和配置代理的问题解析
centos8安装nginx1.9.1的详细过程
Aug 02 #Servers
You might like
PHP Google的translate API代码
2008/12/10 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
javascript中的继承实例代码
2011/04/27 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
python中Genarator函数用法分析
2015/04/08 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
职高毕业生自我鉴定
2013/10/21 职场文书
淘宝中秋节活动方案
2014/01/31 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
小学中队委竞选稿
2015/11/20 职场文书
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS