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 相关文章推荐
Filebeat 采集 Nginx 日志的方法
Mar 31 Servers
Nginx+SpringBoot实现负载均衡的示例
Mar 31 Servers
nginx部署多前端项目的几种方法
May 25 Servers
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
Feb 12 Servers
使用kubeadm命令行工具创建kubernetes集群
Mar 31 Servers
为Centos安装指定版本的Docker
Apr 01 Servers
nginx location 带斜杠【 / 】与不带的区别
Apr 13 Servers
Windows Server 2016 配置 IIS 的详细步骤
Apr 28 Servers
使用Nginx+Tomcat实现负载均衡的全过程
May 30 Servers
Linux服务器离线安装 nginx的详细步骤
Jun 16 Servers
windows server2008 开启端口的实现方法
Jun 25 Servers
Zabbix对Kafka topic积压数据监控的问题(bug优化)
Jul 07 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之Memcache学习笔记
2013/06/17 PHP
php操作xml
2013/10/27 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
学习YUI.Ext 第七天--关于View&amp;JSONView
2007/03/10 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
详解Python sys.argv使用方法
2019/05/10 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
Java基础面试题
2014/07/19 面试题
自荐信封面
2013/12/04 职场文书
读书活动总结
2014/04/28 职场文书
销售人员求职信
2014/07/22 职场文书
班子四风对照检查材料
2014/08/21 职场文书
建筑节能汇报材料
2014/08/22 职场文书
2014离婚协议书范文
2014/09/10 职场文书
自查自纠工作总结
2014/10/15 职场文书
企业党建工作总结2015
2015/05/26 职场文书
介绍信应该怎么开?
2019/04/03 职场文书