nginx:缓存·

Nginx(13)_缓存配置 Nginx(13)_缓存 阅读详情

缓存是提升浏览器访问效率最有效的方法

不仅要考虑nginx要作为缓存服务时的使用方法,还需要考虑浏览器中缓存生效的场景(因为浏览器中缓存是否生效,可以通过nginx指令控制,而浏览器的缓存对用户的体验提升也是最大的)

浏览器缓存:

   优点:

      (1)使用有效缓存时,没有网络消耗,速度最快

      (2)即使有网络消耗,但对失效缓存使用304响应做到网络流量消耗最小化

   缺点:

        仅提升一个用户的体验

 

nginx缓存

    优点:

          (1)提升所有用户的体验

          (2)相比浏览器缓存,有效降低上游服务的负载

          (3)通过304响应减少nginx与上游服务间的流量消耗

   缺点:

           用户仍然保持网络消耗

 

 同时使用浏览器缓存与nginx缓存.

1.etag指令

   语法:etag  on | off;

   默认:etag  on;

   放置位置:http,server,location

2.expires指令

   语法:expires  [ modified ] time;expires epoch |  max | off ; 

   默认:expires off;

   放置位置:http,server,location,if in  location

        off : 不添加或者修改Expires和Cache-Control字段

        epoch: Expires : 1970  00:00:01GMT               Cache-Control:no-cache

        time:一天内的具体时刻可以加@。正数:设定Cache-Control时间,计算出expires。负数:Cache-Control:no-cache,计算出expires

 

 

not_modified过滤模块

   功能:客户端拥有缓存,但不确定缓存是否过期,于是在请求中传入If-Modified-Since或者If-None-Match头部,该模块通过将其值与响应中的Last-Modified值相比较,决定是通过200返回全部内容,还是仅返回304 Not Modified头部,表示浏览器仍使用之前的缓存

  使用前提:原返回响应码为200

1.if_modified_since指令

   语法:if_modified_since  off |  exact | before;

   默认:if_modified_since  exact;

   放置位置:http,server,location

        off : 忽略请求中的if_modified_since头部

        exact:精确匹配if_modified_since头部与last_modified的值

       before:若if_modified_since大于等于last_modified的值,则返回304

         

nginx缓存:定义存放缓存的载体

1.proxy_cache 指令 

   语法:proxy_cache  zone | off

   默认:proxy_cache  off;

   放置位置:http,server,location

2.proxy_cache_path指令(存放缓存文件路径)

   语法:proxy_cache_path  path;

   默认:空

   放置位置:http

 

3.proxy_cache_valid指令(缓存什么样的响应)

   语法:proxy_cache_valid   [ code ] time;

   默认:空

   放置位置:http,server,location

4.proxy_cache_method指令(对哪个method方法使用缓存返回响应)

   语法:proxy_cache_method  GET | HEAD | POST;

   默认:proxy_cache_method  GET  HEAD;

   放置位置:http,server,location

 

如何减轻缓存失效时上游服务器的压力

合并回源请求---减轻峰值流量下的压力

1.proxy_cache_lock指令(打开on时,同一时间仅第一个请求发向上游,其他请求等待第一个响应返回或者超时后,使用缓存响应客户端)

   语法:proxy_cache_lock  on |  off

   默认:proxy_cache_lock off;

   放置位置:http,server,location

2.proxy_cache_lock_timeout 指令(等待第一个请求返回响应的最大时间,到达后直接向上游发送请求,但不缓存响应)

   语法:proxy_cache_lock_timeout   time;

   默认:proxy_cache_lock_timeout   5s;

   放置位置:http,server,location

3.proxy_cache_lock_age 指令(上一个请求返回响应的超时时间,到达后再放行一个请求发向上游)

   语法:proxy_cache_lock_age   time;

   默认:proxy_cache_lock_age   5s;

   放置位置:http,server,location

减少回源请求---使用stale陈旧的缓存

1.proxy_cache_use_stale 指令(返回旧缓存,提升体验)

   语法:proxy_cache_use_stale   error | timeout | invalid_head | updating;

   默认:proxy_cache_lock_age   off;

   放置位置:http,server,location

2.proxy_cache_background_update 指令(当使用proxy_cache_use_stale允许使用过期缓存时,将同步生成一个子请求,通过访问上游服务更新过期的缓存)

   语法:proxy_cache_background_update   on  | off;

   默认:proxy_cache_background_update   off;

   放置位置:http,server,location

缓存有问题的响应

1.proxy_cache_revalidate 指令(更新缓存时,使用If-Modified-Since和If-None-Match作为请求头部,预期内容未发生变更时通过304来减少传输的内容)

   语法:proxy_cache_revalidate   on  | off;

   默认:proxy_cache_revalidate   off;

   放置位置:http,server,location

十、HTTP 缓存——Nginx HTTP 缓存 时间为 2024年8月16日 11:00:00,Nginx 将返回 304 状态码,因为资源的最后修改时间早于客户端的请求时间。:对于不常变化的异步数据(如商品详情页的评论),可以考虑设置较长时间的缓存(如 1 个月)。:对于静态资源(如 JS、CSS、图片),可以设置较长时间的缓存(如 1 个月或 1 年),通过版本号控制缓存过期。:对于不需要强一致性的页面(如商品详情页的库存信息),可以设置较短的缓存时间。通过这种配置,你可以灵活地管理 Nginx 的缓存内容,确保缓存的有效性和更新的及时性。 阅读详情

相关推荐

HyperLPR3车牌识别-Android-SDK光速部署与使用

基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework.快速部署AndroidSDK

tunm 6118

nginx访问控制

一、设置目录限制访问,返回403 location /xxx { return 403; if_modified_since off; add_header Last-Modified ""; proxy_read_timeout 300; proxy_set_header Host $host; proxy_set_

c1h2cy的专栏 446

一人公司 CEO × Accio Work:最大能效实战指南

作为一人公司 CEO,你需要同时扮演市场、销售、运营、财务、产品等多个角色。Accio Work 本质上就是你的。

华盛AI的博客 2096

nginx参数etag

参数说明 默认值: etag on; Etag其实是一个页面的Hash值,当浏览器刷新页面的时候,浏览器会发送页面的etag值,让服务器进行比较,服务器如果发现etag值没变,则返回304,浏览器则从缓存中获取页面,如果不相等,则重新获取页面,如果etag过期,则重新获取页面。 参考文献: https://blog.youkuaiyun.com/libinbin_...

OfficerGoodbody的博客 1369

图腾柱无桥PFC控制逻辑解析:从双闭环到电压前馈的设计演进

本文深入解析图腾柱无桥PFC控制逻辑的设计演进,从经典双闭环控制到电压前馈技术的实现。通过分析功率波动问题和动态响应慢的症结,提出引入电压前馈的解决方案,并详细探讨数字实现中的关键注意事项。文章还涵盖控制框图的构建、稳定性分析方法及实际应用中的调参技巧,为开关电源设计提供实用指导。

weixin_29268267的博客 571

【ShaderToy】开篇

写在前面呜呼,好久没有写博客了,好惭愧。题外话,感觉越大就越想家,希望可以一直和家人在一起,哪怕只是坐在一起不说话也觉得很温暖,一想到要分开眼睛就开始酸,哎。开学还是爬上来老实更新博客学习吧~今天爬上来一看,发现优快云的博客编辑终于更新了!进步总是好的,以前的编辑器实在很捉急。使用这种标记语言的确方便了很多,但好像颜色字体没法设置?程序员果然对美观没什么追求。ShaderToy如果你还没听过Sha

candycat 8万+

Nginx缓存使用官方教程及常见问题解答

原文地址:http://www.kuqin.com/shuoit/20150804/347388.html 我们都知道,应用程序和网站一样,其性能关乎生存。但如何使你的应用程序或者网站性能更好,并没有一个明确的答案。代码质量和架构是其中的一个原因,但是在很多例子中我们看到,你可以通过关注一些十分基础的应用内容分发技术(basic application delivery techniques),来...

weixin_33928467的博客 632

DMDiff(2025):一种基于SAR光学数据融合的双分支多模态条件引导扩散模型-k学长深度学习专栏

DMDiff提出了一种基于扩散模型的多模态遥感图像去云方法,通过双分支网络分别提取SAR的结构信息和光学图像的光谱特征,再利用跨模态注意力机制实现特征融合。创新性地采用IAP策略直接预测无云图像而非噪声,有效解决了传统方法在遥感图像处理中易出现的光谱失真问题。实验表明该方法在PSNR等指标上显著优于现有技术,但存在计算量大、生成速度慢等不足。未来可结合加速采样策略和几何约束进一步优化。

421

nginx 简单实践:Web 缓存【nginx 实践系列之三】

Cache-Control 的优先级高于 Expires,Expires 是 http1.0 的产物,而 Cache-Control 是 http1.1 的产物,两者同时存在的时候 Expire 会被 Cache-Control 的 max-age 覆盖,在不支持 http1.1 的情况下可能就需要 Expires 来保持兼容。需要精确配置:正确配置缓存策略需要一定的专业知识,尤其是在处理不同类型的资源时(如静态资源与动态生成的内容),错误的配置可能导致缓存命中率低或频繁的缓存失效问题。

weixin_55010563的博客 815

人工蜂群优化算法(ABC)详解:原理、实现与应用

人工蜂群算法(Artificial Bee Colony, ABC)是Karaboga于2005年提出的一种群体智能优化算法,其灵感来源于蜜蜂群体在自然界中高效的采蜜行为。该算法通过模拟雇佣蜂、观察蜂和侦察蜂三种角色的分工协作来寻找最优解。在ABC算法中,每个潜在的解决方案被视为一个“食物源”,其质量由适应度函数评估。雇佣蜂负责在已知优质食物源附近进行局部开采;观察蜂根据雇佣蜂分享的信息,以一定概率选择并跟进优质食物源;侦察蜂则随机探索新区域,防止种群陷入局部最优。

qq_42212808的博客 393

DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)

【代码】DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)

baidu_34971492的博客 969

Steam挂刀行情站实战指南:四个脚本盯住约 6.4 万个饰品的挂刀比例

如果你也转过 CSGO 或 DOTA2 的饰品,一定熟悉这个画面:一件饰品要在 BUFF、IGXE、C5、Steam Market 之间来回比价,开页面、记数字、算比例,一单还没算完,行情已经动了。开源项目 SteamTradingSiteTracker(Steam挂刀行情站)就是来终结这件事的:24 小时自动采集多平台饰品价格,自动算出每一件饰品的挂刀比例。 它目前覆盖约 64000 个 CS

gitblog_00989的博客 969

49、Linux内核内存管理:MGLRU、DAMON与OOM杀手详解

本文详细解析了Linux内核内存管理中的三大核心机制:MGLRU(多代LRU)页面追踪与回收机制、DAMON数据访问监控工具及其在内存优化中的应用,以及OOM(内存不足)杀手的工作原理和触发方式。同时,文章还介绍了VM overcommit_memory策略的设置及其对内存分配的影响,帮助开发者和系统管理员更好地理解Linux内存管理机制,从而优化系统性能和稳定性。

dropout6artist的博客 107

玩玩儿nginx:缓存服务器

什么是nigix 安装nginx brew install nginx 启动nginx:sudo nginx 关闭nginx: sudo nginx -s stop https://coderwall.com/p/dgwwuq http://www.kazaff.me/2013/07/18/%E5%9C%A8mac-os-x-10-9%E4%B8%8A%E7

kiwi_coder 4637

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Nginx高级技术: 代理缓存配置

Nginx高级技术: 代理缓存配置

bk_陈龙伟 3753

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Nginx高级(九):nginx缓存配置、nginx proxy_cache缓存模块指令详解

一、nginx缓存 1、什么是缓存? 1.缓存的基本概述 缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器反复去查询数据,而是由本地保存的副本响应数据。 保存在本地的这些副本具有一个过期时间,超过该时间将会更新。判断一个副本数据是否为过期数据的办法有很多,可以使用保留时间来判断,也可以使用数据完整度来判断。 许多Web服务器还具有校验功能,就是当某些副本数据过期以后,先向后端服务器发送校验请求,后端服务器对这些数据

大胡子哥哥 5726

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Nginx 实战:Nginx缓存web服务

在实战中利用Nginx配置缓存服务可以显著提升网站性能,减少后端服务器压力,并加快重复请求的响应时间。请确保在实际生产环境中根据业务需求调整缓存策略,比如缓存过期时间、缓存控制规则等。同时注意不要缓存那些涉及用户私密信息或频繁变化的内容。可以通过发送 PURGE 请求或使用 Nginx 控制台命令清理缓存条目。(根据需要缓存的内容是通过代理还是FastCGI处理的)。为了更好地管理和监控缓存,可以结合Nginx的状态接口以及相应的管理工具查看缓存命中率、缓存状态等信息。确保Nginx已经安装了。

qq_33240556的博客 540

Nginx 实战:Nginx代理缓存服务

在Nginx实战中,配置Nginx代理缓存服务是一种常见的优化策略,它可以帮助减少后端服务器的负载,提升网站或API服务的响应速度。

qq_33240556的博客 534

nginx:在Nginx中,如何配置静态文件的缓存

在现代Web架构中,静态资源(如JS、CSS、图片)的加载速度直接影响用户体验和SEO排名。Nginx作为高性能反向代理服务器,可以通过缓存静态文件减少后端负载,提升响应速度。业务更新JS/CSS后,用户可能因缓存未失效而访问旧版本。当缓存失效时,大量请求同时回源,导致后端压力剧增。Nginx静态缓存基于HTTP缓存头((Hash版本化 + 主动清理)Nginx缓存是否存在?(缓存锁 + 分级缓存)存储到Nginx缓存。

weixin_43290370的博客 3263

Nginx使用教程(六):使用Nginx缓存之FastCGI缓存

启用FastCGI缓存 <br\>编辑必须启用缓存的虚拟主机配置文件。 nano /etc/nginx/sites-enabled/vhost 将以下行添加到server{}指令之外的文件顶部: fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=MYAPP:100m inactive=60m; fastcgi_c...

微信公众号:大数据从业者 445

nginx:如何在Nginx中配置对静态文件的缓存

作为阿里/字节跳动资深Java工程师,高效管理静态资源是提升系统性能的关键。

weixin_43290370的博客 2220

Nginx:设置Nginx作为缓存

一、设置Nginx作为缓存 1.1 完整的配置文件nginx.conf #user nobody; worker_processes 1; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request"

kanguolaikanguolaik的专栏 2504

Nginx FastCGI缓存实战:VPS上安全加速PHP网站

FastCGI缓存是Nginx在反向代理层对PHP动态内容生成的HTTP响应进行静态化存储的关键机制,其核心原理是基于请求URI等字段构造缓存键,跳过PHP-FPM执行链路,直接返回预存响应体。该技术不依赖代码重构或CDN,特别适用于资源受限的VPS环境,能将TTFB从数百毫秒压至20ms内,显著提升WordPress、ThinkPHP等传统PHP应用的并发承载能力。但需规避Set-Cookie、Session、POST请求等缓存污染风险,并通过fastcgi_cache_key、fastcgi_ignor

weixin_33730836的博客 324

Nginx缓存机制优化:FastCGI缓存与浏览器缓存

摘要:本文深入探讨Nginx缓存机制优化中的FastCGI缓存与浏览器缓存。FastCGI缓存用于存储动态内容,通过合理配置缓存路径、键名和有效期可显著提升响应速度;浏览器缓存则通过设置HTTP头信息控制静态资源本地存储。文章详细介绍了两种缓存的配置方法、优化策略及常见问题解决方案,包括缓存命中率提升和更新机制优化。通过合理运用这两种缓存技术,可有效降低服务器负载,提高网站访问性能。

fykam的博客 1147
上一篇: nginx:对上下游使用SSL连接
下一篇: HTTP协议
error0318
博客等级 码龄9年 57粉丝 515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值