Nginx配置浏览器缓存
一. 浏览器从哪读取缓存
memory cache
当直接刷新页面的时候,页面资源会从
内存
中直接获取disk cache
如果服务器指定了强缓存它会缓存到
硬盘
上,如果网页关掉再打开浏览器会从磁盘上去加载资源
二. 缓存的分类
<-
:表示服务器给浏览器发送的,->
:表示浏览器给服务器发送的强缓存,文件资源直接从缓存中获取
- <-
cache-control
: max-age=600cache-control
是http1.1中的响应头,max-age=600是缓存600s的意思. 不设置的话默认缓存时间是4天.在这个时间段浏览器不会去服务器获取数据,直接从缓存中获取.- 对于JS,CSS等文件可以设置成强缓存
- <-
expires
: Mon, 14 Sep 2020 09:02:20 GMTexpires
是http1.0中的响应头,他没有max-age属性,功能没有cache-control强大.当cache-control和expires都设置了的时候,只会生效cache-control
- <-
协商缓存,访问服务器是否从浏览器缓存中获取
- <-
last-modified
: Fri, 07 Aug 2020 02:35:59 GMT- 服务器告诉浏览器资源最后的修改时间,
- ->
if-modified-since
: Fri, 07 Aug 2020 02:35:59 GMT- 当浏览器请求数据时会带上浏览器上次请求数据的修改时间,服务器会把这个时间和当前文件最后修改时间作对比,如果修改时间一致说明浏览器之前拿到的是最新文件,则返回304状态码告诉浏览器从缓存中读取.如果浏览器拿到的时间比服务器修改的时间要早那么说明浏览器目前缓存的不是最新文件,则把该文件发送给浏览器并返回200状态码. 但是有的时候文件修改时间变了但是内容没变,这样的话并不准确,所以有了
etag
属性.
- 当浏览器请求数据时会带上浏览器上次请求数据的修改时间,服务器会把这个时间和当前文件最后修改时间作对比,如果修改时间一致说明浏览器之前拿到的是最新文件,则返回304状态码告诉浏览器从缓存中读取.如果浏览器拿到的时间比服务器修改的时间要早那么说明浏览器目前缓存的不是最新文件,则把该文件发送给浏览器并返回200状态码. 但是有的时候文件修改时间变了但是内容没变,这样的话并不准确,所以有了
- <-
etag
: W/“5f2cbe0f-2382"- 当服务器返回响应的时候会告诉浏览器文件etag的值,etag类似一种hash值,它代表文件内容
- -> if-none-match: W/“5f2cbe0f-2382”
- 当浏览器去服务器请求资源的时候,会带上服务器上次返回的etag值.服务器根据这个etag值和当前资源的etag值进行对比.如果一致说明文件没有变动,返回304状态码,如果不一致说明有变动返回200状态码.
- 默认nginx是开启
etag
和last-modified
的
- <-
三. Nginx下配置文件的缓存方式
- 打开终端下载nginx配置文件
scp root@47.242.36.24:/etc/nginx/nginx.conf ./
- 打开下载好的配置文件,在http中添加
gizp
相关配置,加快传输速度
http {# 开启gzipgzip on;# 启用gzip压缩的最小文件;小于设置值的文件将不会被压缩gzip_min_length 1k;# gzip 压缩级别 1-10 gzip_comp_level 2;# 进行压缩的文件类型。gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;# 是否在http header中添加Vary: Accept-Encoding,建议开启gzip_vary on;# etag协商缓存 默认是开启的etag on;
}
- 在
server
中添加协商缓存
和强缓存
配置,解决缓存问题
server {# html设置成协商缓存或者不缓存location ~* \.(html)$ {# 关闭访问日志access_log off;# 添加响应头,no-cache:协商缓存,no-store:不缓存add_header Cache-Control max-age=no-cache;}# 特定文件设置强缓存location ~* \.(css|js|png|jpg|jpeg|gif|gz|svg|mp4|ogg|ogv|webm|htc|xml|woff)$ {access_log off;add_header Cache-Control max-age=360000; # 4天}
}
上传
修改好的nginx.conf到服务器
scp nginx.conf root@47.242.36.24:/etc/nginx/nginx.conf
- 到服务器
重启
nginx服务器即可
nginx -s reload
Nginx配置浏览器缓存相关推荐
- Nginx关于浏览器缓存相关的配置指令
浏览器缓存相关指令 Nginx需要进行缓存相关设置,就需要用到如下的指令 expires指令 expires:该指令用来控制页面缓存的作用.可以通过该指令控制HTTP应答中的"Expires ...
- Nginx中浏览器缓存的执行流程
浏览器缓存的执行流程 HTTP协议中和页面缓存相关的字段,我们先来认识下: header 说明 Expires 缓存过期的日期和时间 Cache-Control 设置和缓存相关的配置信息 Last-M ...
- Nginx中浏览器缓存的相关概念
什么是缓存 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器, 通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术.缓存的设置是 所有现代 ...
- 2.11 Nginx控制浏览器缓存
浏览器缓存: 加速用户访问,提升单个用户(浏览器访问者)体验,缓存在本地 Nginx缓存 缓存在nginx端,提升所有访问到nginx这一端的用户 提升访问上游(upstream)服务器的速度 用户访 ...
- 记录linux下nginx配置html缓存,js,css等不缓存(服务器上的*.html和js,css,jpg等在同一级目录下)
问题描述: 在linux下的nginx配置拦截html,并设置不缓存,js,css,jpg,png等静态资源缓存30天; 备注: 我们服务器上的*.html和js,css,jpg等在同一级目录下 解决 ...
- 三、nginx设置浏览器缓存[expires]
一.浏览器缓存 解释:浏览器缓存极大缓解了带宽压力,提高了用户体验. 访问页面-查看是否有缓存,如果没有过期,直接击中缓存,不向服务器发送请求 访问页面-查看是否有缓存,如果过期,向服务器发送请求(分 ...
- nginx配置不缓存html
前言 by:老草稿,看着没什么问题就发了 现在浏览器或者系统访问网页都会有自己的一套缓存机制,这就可能会导致前端代码已经更新了,但是用户还是访问了之前的缓存 这里介绍下用nginx处理这个问题的方法, ...
- Nginx配置之负载均衡、限流、缓存、黑名单和灰度发布
Nginx配置之负载均衡.限流.缓存.黑名单和灰度发布 一.Nginx安装(基于CentOS 6.5) 1.yum命令安装 yum install nginx –y (若不能安装,执行命令yum in ...
- nginx配置+redis使用以及同步
交易型系统设计的一些原则: 在设计系统时,应该多思考墨菲定律: 1.任何事情都没有表面看起来那么简单: 2.所有的事都会比你预计的时间长: 3.可能出错的事总会出错: 4.如果你担心某种情况发生,那么 ...
最新文章
- 多功能时钟电路的设计框图_一种病理组织漂片多功能一体机的设计
- 缺货大环境下,假货防不胜防,我们又该怎样分辨真假芯片?
- android service交互,Android Activity与Service的交互方式
- java 对接支付宝支付
- python 基础 - 开发环境搭建
- 软件测试工作中的沟通问题
- 【Redis】redis cluster 添加 删除 重分配 节点
- iZotope Trash 2 for Mac(失真效果音频插件)
- BZOJ 2594: [Wc2006]水管局长数据加强版( LCT )
- paip.本机CVS环境搭建
- lisp弧度转度分秒_用C语言实现度分秒与弧度的转化
- 【小峰の题单】网络流经典题目
- No3 jQuery
- PaddleFL 1.2.0版本 使用docker镜像编译流程(Ubuntu 20.04)
- 嵌入式linux开发,flex库移植
- 西工大计算机考研最全的报名和各方向解析,含导师介绍
- 定制一个erp系统多少钱-【揭秘erp开发报价及开发步骤】
- Jihad 2.0下载,Jihad 下载,“圣战”2.0版下载,Jihad 介绍,“圣战”DDOS攻击工具
- C语言——A、‘A‘、“A“的区别
- SAP-MM知识精解-STO公司内的库存转储订单(01)-不带交货单配置及操作
热门文章
- 微型计算机硬件包括啥,微型计算机系统的硬件包括哪五大组成部分
- Excel根据单元格内容分类并插入空行的方法
- gitlab提交代码提示The remote end hung up unexpectedly
- Nobody gives away anything valuable for free.
- React SSR: 基于 express 自构建 SSR 服务端渲染
- 和ts一般怎么玩_AG首发大换血,成功复仇TS,发了工资的TS谁也打不赢?
- 王者服务器维护8月四日,王者荣耀体验服弈星重做上线 8月4日停机更新
- java mediator模式_设计模式之Mediator 中介者模式 - 解道Jdon
- 数据库并发抢红包_微信高并发抢红包秒杀实战案例
- 【拜小白的机器学习】2-机器学习的种类与基本术语概念