We're sorry but nginx-community doesn't work properly without JavaScript enabled. Please enable it to continue.
开源社区
首页
文章
问答
文档
软件下载
发现更多
三方插件
技术支持
电子书
公开课
社区贡献榜
关于我们
登录
注册
NGINX
负载均衡
JavaScript
NGINX Unit
Kubernetes
微服务
容器
NGINX系列
WAF
Node.js
Go(编程语言)
服务网格(Service Mesh)
HTTP/3_专栏
版本发布
# 缓存
缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。
关注标签
30人关注
文章
问答
排序
热门
最新
陶辉
发布于2020-05-19 15:54
巧用 NGINX 实现大规模分布式集群的高可用性
本文是我对2019年GOPS深圳站演讲的文字整理。这里我希望带给各位读者的是,如何站在整个互联网背景下系统化地理解Nginx,因为这样才能解决好大流量分布式网络所面临的高可用问题。标题里有“巧用”二字,何谓巧用?同一个问题会有很多种解决方案,但是,各自的约束性条件却大不相同。巧用就是找出最简单、最适合的方案,而做到这一点的前提就是必须系统化的理解Nginx!本文分四个部分讲清楚如何达到这一目的:首先要搞清楚我们面对的是什么问题。这里会谈下我对大规模分布式集群的理解;Nginx如何帮助集群实现可伸缩性;Nginx如何提高服务的性能;从Nginx的设计思路上学习如何用好它。1.大规模分布式集群的特点互联网是一个巨大的分布式网络,它有以下特点:多样化的客户端。网络中现存各种不同厂商、不同版本的浏览器,甚至有些用户还在使用非常古老的浏览器,而我们没有办法强制用户升级;多层代理。我们不知道用户发来的请求是不是通过代理翻墙过来的;多级缓存。请求链路上有很多级缓存,浏览器、正反向代理、CDN等都有缓存,怎么控制多级缓存?RFC规范中有明确的定义,但是有些Server并不完全遵守;不可控的流量风暴。
点赞
10
浏览
3.1k
陶辉
发布于2020-05-19 13:58
如何善用缓存提升系统的健壮性?(上)
分布式系统提升可用性时,最有效的方案就是在空间维度上,将资源复制一份作为缓存,并把缓存放在离用户更近的地方。这样,通过缩短用户的访问路径,不只可以降低请求的时延,多份资源还能提升系统的健壮性。比如WEB服务中的CDN就是这样一个缓存系统。 Nginx由于具有下面3个特性,因此是最合适的缓存系统:l 首先,高并发、低延迟赋予了Nginx优秀的性能;l 其次,多进程架构让Nginx具备了很高的稳定性;l 最后,模块化的开源生态,以及从开放中诞生的Openresty、Kong等其他体系,这都让Nginx的功能丰富而强大。 所以,Nginx往往部署在企业最核心的边缘位置,在最外层的Nginx上部署共享缓存,能够给服务带来更大的收益,更短的访问路径带来了更佳的用户体验。然而,当整个系统的可用性极度依赖Nginx的缓存功能时,我们必须仔细地配置Nginx,还得使用到缓存的许多进阶功能。 比如,在超大流量下如果热点资源的缓存失效,那么在巨大的流量穿透Nginx缓存后,非常有可能把脆弱的上游服务打挂。此时合并回源请求功能,就是你的最佳应
点赞
12
浏览
2.5k
守望
发布于2020-09-10 09:56
nginx缓存原理及配置
1.nginx缓存原理及配置nginx的http_proxy模块,可以实现类似于squid的缓存功能。基于nginx静态缓存的解决方案:1.1nginxcache的基本配置proxy_cache_path/data/nginx/cache_itemlevels=1:1:2keys_zone=cache_item:10mmax_size=10ginactive=60m; server{ location~\.(gif|jpg|jpeg|png|bmp|ico)${ proxy_set_headerHost$host; proxy_set_headerX-Forwarded-For$remote_addr; proxy_passhttp://127.0.0.1:8080; proxy_cachecache_item;
点赞
3
浏览
2k
cr7258
发布于2021-01-25 21:25
Nginx缓存详解(二)之服务端缓存
服务端缓存proxycache属于服务端缓存,主要实现nginx服务器对客户端数据请求的快速响应。nginx服务器在接收到被代理服务器的响应数据之后,一方面将数据传递给客户端,另一方面根据proxycache的配置将这些数据缓存到本地硬盘上。当客户端再次访问相同的数据时,nginx服务器直接从硬盘检索到相应的数据返回给用户,从而减少与被代理服务器交互的时间。 开启nginx缓存 反向代理nginx配置首先需要指定proxy_cache_path,可以指定多条: proxy_cache_path/tmp/nginx/cachelevels=1:2inactive=60skeys_zone=mycache:10mmax_size=10g; /tmp/nginx/cache:缓存文件存放的路径。levels:默认所有缓存文件都放在同一个目录下时,会影响缓存的性能,大部分场景推荐使用2级目录来存储缓存文件,1和2表示用1位和2位16进制来命名目录名称。第一级目录用1位16进制命名,如b;第二级目录用2位16进制命名,如2b。所以一级目录有16个,二
点赞
3
浏览
2.1k
守望
发布于2020-09-10 09:59
Nginx下关于缓存控制字段cache-control的配置说明 - 运维小结
HTTP协议的Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括:no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached等。响应消息中的指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。下面做一详细总结,方便在以后的运维工作中理解和运用.一. 浏览器中关于Cache的3属性:1.Cache-Control:设置相对过期时间,max-age指明以秒为单位的缓存时间.若对静态资源只缓存一次,可以设置max-age的值为315360000000(一万年). 比如对于提交的订单,为了防止浏览器回退重新提交,可以使用Cache-Control之no-store绝对禁止缓存,即便浏览器回退依然请求的是服务器,进而判断订单的
点赞
3
浏览
1.9k
cr7258
发布于2021-01-25 21:24
Nginx缓存详解(一)之客户端缓存
缓存的作用缓存对于Web服务至关重要,尤其对于大型高负载Web站点。缓存作为性能优化的一个重要手段,可以在极大程度上减轻后端服务器的负载。通常对于静态资源,即不经常更新的资源,如图片,CSS或JS等进行缓存,而不用每次都向服务器请求,这样就可以减轻服务器的压力。 缓存的分类缓存可以分为客户端缓存和服务端缓存。 客户端缓存指的是浏览器缓存,浏览器缓存是最快的缓存,因为它直接从本地获取(但有可能需要发送一个协商缓存的请求),它的优势是可以减少网络流量,加快请求速度。 服务端缓存指的是反向代理服务器或CDN的缓存,他的作用是用于减轻后端实际的WebServer的压力。 浏览器缓存可以分为两种模式,强缓存和协商缓存。 强缓存(无HTTP请求,无需协商) 直接读取本地缓存,无需向服务端发送请求确认,HTTP返回状态码是200(frommemorycache或者fromdiskcache,不同浏览器返回的信息不一致的)。 相关的HTTPHeader有: Cache-ControlExpires 协商缓存(有HTTP请求,需协商) 浏览器虽
点赞
2
浏览
1.9k
守望
发布于2021-02-08 09:44
Nginx 减轻缓存失效对上游服务压力 proxy_cahce_lock和proxy_cache_use_stale
合并回源请求场景Nginx的缓存满足了绝大部分的应用场景,当我们的服务面对非常大的流量的时候,如果我们的缓存服务例如nginx出现了一些问题,比如新增加了或者一些nginx宕机了,缓存已经失效了,这些ngixn起来的时候会导致大量的请求穿透nginx,因为当前nginx缓存都是失效的,这样全部的请求打到了上游服务,特别是对一些热点的文件,很多用户访问的是同一个资源,但是因为这个资源突然失效了,这些并发的请求全部打到了上游服务,而导致上游服务一直起不来。Nginx对于这种场景有很多的处理方法。Nginx是怎么样通过合并回源请求等等方式来减轻上游服务在高峰期并发访问压力的呢?合并回源请求,减轻峰值流量下的压力proxy_cache_lockSyntax:proxy_cache_lock on | off;Default:proxy_cache_lockoff;Context:http, server, locationThisdirectiveappearedinversion1.1.12.Whenenabled,only
点赞
0
浏览
1.4k
NGINX官方账号
发布于2022-04-19 10:17
如何应对突发的流量激增和服务器过载问题
原文作者:FrancesFedoriskaofF5原文链接:如何应对突发的流量激增和服务器过载问题-NGINX转载来源:NGINX官方网站在新冠疫情的冲击下,许多零售商的客户都改变了他们假日购物的渠道和方式。由于人们无法去实体店购物,线上购物迎来了前所未有的新高潮——2020年美国的电子商务销售额飙升至1,890亿美元,比2019年增长了33%。现在购物狂欢节还有不到六个月的时间,我们在此提供了几种利用NGINX帮助您为突发的流量高峰做好准备的方法。第1步:知己知彼在调整堆栈之前,最好先了解您需要在多大程度上优化您的网站性能,才能在购物狂欢季有最佳(而不是勉强合格)的表现。先从收集竞争对手网站的性能数据开始吧。页面加载时间可能是最重要的指标,因为如今许多用户都没有耐心,只要网页加载时间超过三秒,他们就会离开。测量加载时间的工具有很多,并且大多都是免费的。您不妨参考一下Geekflare最近测评的11款测试工具。您可考虑测量以下页面的加载时间:主页产品搜索页面产品详情页面点击“购买”按钮后出现的确认页面测试几个竞争对手和您自己的网站的关键页面只需
点赞
0
浏览
1.3k
NGINX官方账号
发布于2023-11-28 15:46
NGINX 和 NGINX PLUS 缓存指南
应用和网站的性能关系着成败, 优化缓存是提升性能的基本方法之一。了解有关 NGINX 和 NGINX Plus 缓存的所有信息。访问 NGINX 中文官方开源社区(nginx.org.cn)了解详情。
点赞
0
浏览
903
NGINX官方账号
发布于2023-05-23 14:45
NGINX 性能调优
原文作者:Rick Nelson of F5原文链接:NGINX 性能调优转载来源:NGINX 官方网站NGINX唯一中文官方社区 ,尽在 nginx.org.cnNGINX 是众多周知的高性能负载均
点赞
0
浏览
655
发表文章
提问
社区达人
成为达人
陶辉
暂无个人介绍
关注
洪志道
暂无个人介绍
关注
皮皮鲁
暂无个人介绍
关注
加菲
暂无个人介绍
关注
lwl
暂无个人介绍
关注
相关文章
NGINX 性能调优
原文作者:Rick Nelson of F5原文链接:NGINX 性能调优转载来源:NGINX 官方网站NGINX唯一中文官方社区 ,尽在 nginx.org.cnNGINX 是众多周知的高性能负载均
NGINX官方账号
发布于2023-05-23 14:45
保持联系
微信公众号
加入微信群
获取商业支持
了解商业产品和专业支持服务
加入邮件列表
向开发组提交代码或反馈意见