web缓存之nginx缓存

这篇具有很好参考价值的文章主要介绍了web缓存之nginx缓存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、nginx缓存知识

        网络缓存位于客户端和 "源服务器 "之间,保存着所有可见内容的副本。当客户端请求缓存中存储的内容时,它可以直接从缓存中检索内容,而无需与服务器通信。这样,网络缓存就 "接近 "了客户端,提高了响应性能,并更有效地利用了应用服务器,使其不必为每个请求生成页面。

        在浏览器和应用服务器之间有多种 "潜在 "缓存,包括客户端浏览器缓存、中间缓存、内容交付网络(CDN)、负载均衡和服务器上的反向代理。缓存,即使只是在反向代理和负载平衡的层面上,对于提高性能也是非常有用的。

        举个例子来说明,去年我为一个加载缓慢的网站进行了性能优化。我注意到的第一件事是,主页的生成时间几乎长达一秒或更长。经过一番调试,我发现加载速度慢的原因是网页被标记为非缓存,这意味着每次请求都会动态生成。这其实没有必要,因为网页本身不需要经常更改,也不需要个性化。为了验证我的结论,我将页面标记为每五秒钟缓存一次。第一个字节到达的时间缩短到几毫秒,页面加载速度明显加快。

        除了大型内容交付网络(CDN),缓存还能提高负载平衡器、反向代理和应用服务器前端网络服务的性能。从上面的例子中可以看出,缓存内容可以更有效地利用应用服务器,因为页面生成过程无需每次重复。此外,网络缓存还可用于提高网站的可靠性。如果服务器宕机或繁忙,可以对 NGINX 进行设置,将缓存内容发送给用户,而不是向用户返回错误信息。这就意味着,如果应用服务器或数据库出现故障,网站的部分或全部功能仍能保持。

二、设置nginx缓存

nginx源站点服务器设置

web缓存之nginx缓存,缓存,缓存,nginx

web缓存之nginx缓存,缓存,缓存,nginx

缓存服务器设置

proxy_cache_path /data/nginx/cache levels=1 keys_zone=my_cache:10m max_size=10g inactive=3m use_temp_path=off;

●path:强制参数,指定缓存文件的存放路径。
●levels:定义了缓存目录的层级。每层可以用1(最多16种选择,0-f)或2(最多256种选择,00-ff)表示,中间用 : 分隔。
proxy_cache_path /data/nginx/cache;  代表所有缓存只有一个目录,比如/data/nginx/cache/d7b6e5978e3f042f52e875005925e51b
proxy_cache_path /data/nginx/cache levels=1:2;  代表缓存是二层目录(有16*256=4096个目录),比如/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b
●keys_zone:强制参数,定义共享内存区的名称和大小,该共享内存用于保存缓存项目的元数据(所有活动的key和缓存数据相关的信息),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key。
●inactive:删除指定时间内未被访问的缓存文件,默认10分钟。
●max_size:设置了缓存存储的上限,如果不指定,最大会用掉所有磁盘空间。
●use_temp_path:直接把临时文件放在缓存目录中。

web缓存之nginx缓存,缓存,缓存,nginxweb缓存之nginx缓存,缓存,缓存,nginx

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;

        proxy_cache my_cache;      #指定用于页面缓存的共享内存,zone名称由proxy_cache_path指令定义
        proxy_cache_valid 200 3m;  #为不同的响应状态码设置不同的缓存时间,此为缓存状态码为200的请求,缓存时长为3分钟
        proxy_cache_key $request_uri; #指定缓存文件的key为请求的URI
        add_header Nginx-Cache-Status $upstream_cache_status;  #把缓存状态设置为头部信息,响应给客户端
        proxy_pass http://webservers;  #设置代理转发的后端服务器的协议和地址

    }

web缓存之nginx缓存,缓存,缓存,nginx

测试 

web缓存之nginx缓存,缓存,缓存,nginx

web缓存之nginx缓存,缓存,缓存,nginx web缓存之nginx缓存,缓存,缓存,nginx

web缓存之nginx缓存,缓存,缓存,nginx web缓存之nginx缓存,缓存,缓存,nginx

三、补充知识

CDN 内容分发网络
在最接近用户的网络“边缘”增加一层CDN缓存代理服务器,将源站点的内容发布CDN节点,可以使用户就近取得所需的内容,提高用户访问网站的响应速度。

CDN工作原理:将源站点(Web应用服务器)的静态网页资源缓存到CDN节点上,用户请求资源时,通过与DNS的配合,找到最靠近用户的一台CDN缓存服务器,然后把资源数据快速地分发给用户,而不需要每个用户的请求都从源站点获取,从而避免网络拥塞、缓解源站点的压力,保证用户访问资源的速度和体验。

CDN的内容是如何获取的?
1)对于热点资源,定时做缓存预热
2)如果CDN节点没有,会从上游服务器或源站点获取资源,并同步到CDN节点的缓存中    
文章来源地址https://www.toymoban.com/news/detail-822663.html

到了这里,关于web缓存之nginx缓存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Redis】多级缓存(nginx缓存、redis缓存及tomcat缓存)

    传统的缓存策略一般是请求到达 tomcat 后,先查询redis,如果未命中则查询数据库。这种方式存在以下两个问题: 请求要经过 tomcat 处理, tomcat 的性能成为整个系统的瓶颈。 redis缓存失效时,会对数据库产生冲击。 多级缓存 就是充分利用请求处理的每个环节,分别添加缓存

    2023年04月21日
    浏览(43)
  • 强缓存与协商缓存、缓存失效的问题、缓存nginx配置、缓存存在哪里

    前端缓存,这是一个老生常谈的话题,也常被作为前端面试的一个知识点。今天我们来总结一下。 分类:前端缓存分为强缓存和协商缓存两种。 强缓存主要使用 Expires、Cache-Control 两个头字段,两者同时存在 Cache-Control 优先级更高。当命中强缓存的时候,客户端不会再求,直

    2024年01月25日
    浏览(47)
  • Nginx(6)nginx的缓存集成

    缓存就是数据交换的缓冲区(称作Cache),当用户要获取数据的时候,会先从缓存中去查询获取数据,如果缓存中有就会直接返回给用户,如果缓存中没有,则会发请求从服务器重新查询数据,将数据返回给用户的同时将数据放入缓存,下次用户就会直接从缓存中获取数据。 缓

    2024年02月12日
    浏览(39)
  • 【Nginx20】Nginx学习:FastCGI模块(二)缓存配置

    通过上篇文章的学习,普通的 PHP 与 Nginx 的连接就已经没啥大问题了。一般的网站直接那套配置就够了,这也是 Nginx 非常友好的一面。很多在默认的配置文件中注释掉的内容,只要打开就是可以直接使用的。不过,FastCGI 可不是一个小模块,还有很多的配置指令,要想深入,

    2024年02月11日
    浏览(34)
  • Nginx缓存相关配置解析

    客户端需要访问服务器的数据时,如果都直接向服务器发送请求,服务器接收过多的请求,压力会比较大,也比较耗时;而如果在nginx缓存一定的数据,使客户端向基于nginx的代理服务器发送请求,可以有效节省时间。 Nginx缓存机制的作用 缓存能够提升性能,学会Nginx中如何使

    2024年02月21日
    浏览(47)
  • 14、Nginx---缓存服务

    1 、服务器端缓存 2、代理缓存 3、客户端缓存 代理缓存的原理: proxy_cache_path path [ levels = levels ] [ use_temp_path = on | off ] keys_zone = name : size [ inactive = time ] [ max_size = size ] [ manager_files = number ] [ manager_sleep = time ] [ manager_threshold = time ] [ loader_files = number ]   [ loader_sleep = time ]   [

    2024年02月03日
    浏览(29)
  • nginx-反向代理缓存

    反向代理缓存相当于自动化动静分离。 将上游服务器的资源缓存到nginx本地,当下次再有相同的资源请求时,直接讲nginx缓存的资源返回给客户端。 本地缓存资源有一个过期时间,当超过过期时间,则重新向上游服务器重新请求获取资源。 这样减轻了上游服务器的资源请求负

    2024年02月09日
    浏览(35)
  • Nginx缓存配置

    Nginx也可以做缓存反向代理 缓存就是数据交换的缓冲区(Cache),当用户要获取数据的时候,会先从缓存中去查询获取数据,如果缓存中有就会直接返回给用户,如果缓存中没有,则会发请求从服务器重新查询数据,将数据返回给用户的同时将数据放入缓存,下次用户就会直

    2024年02月12日
    浏览(42)
  • nginx-缓存

    disk cache:磁盘缓存数据,有时间延迟,但是非常小,相对于直接请求服务器返回 对于用户来说基本无感知。 memory cache:磁盘缓存数据,基本上没有时间延迟 客户端访问nginx请求资源,nginx将资源返回给客户端,并告诉客户端last_modify最后修改时间。 客户端拿到资源和last_mo

    2024年02月10日
    浏览(29)
  • nginx缓存关闭

    NGINX 缓存默认是不开启的,也就是说,NGINX 作为反向代理服务器时,会将所有的客户端请求直接打到服务端。如果想使用 NGINX 缓存,可以通过 proxy_cache_path 配置项进行设置 1.nginx怎么关闭缓存 location ~ .*.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {  #禁止缓存,每次都从服务器请求   add_he

    2023年04月20日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包