web缓存之nginx缓存

 一、nginx缓存知识

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

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

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

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

二、设置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:直接把临时文件放在缓存目录中。

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为请求的URIadd_header Nginx-Cache-Status $upstream_cache_status;  #把缓存状态设置为头部信息,响应给客户端proxy_pass http://webservers;  #设置代理转发的后端服务器的协议和地址}

测试 

 

 

三、补充知识

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

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

CDN的内容是如何获取的?
1)对于热点资源,定时做缓存预热
2)如果CDN节点没有,会从上游服务器或源站点获取资源,并同步到CDN节点的缓存中    

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Opentsdb官方优化文档 - 翻译

文档地址 : Tuning — OpenTSDB 2.4 documentation Tuning As with any database there are many tuning parameters for OpenTSDB that can be used to improve write and read performance. Some of these options are specific to certain backends, others are global. …

在线双目测宽仪 板材实时监测和数据分析!

在各种板材类生产领域里,在线品质检测技术都是非常重要的,它很大程度上决定了生产的质量。在线双目测宽仪就是当前很受欢迎的一种宽度在线检测设备,它采用了双目视觉检测技术,实现宽度尺寸的在线检测,功能十分强大&…

java物品检验管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web 物品检验管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysq…

手把手教你如何用python进行数据分析!(附四个案例)

一、前期准备 三个包:Numpy、Pandas和matplotlib;工具:jupyter notebook。首先确保导入这两个包 #导入Numpy包 import numpy as np #导入Pandas包 import pandas as pd二、基础知识 Pandas有三种数据结构:Series、DataFrame和P…

2024 CSRankings全球计算机科学排名发布!清华AI第一,哈工大NLP第一

大家好我是二狗。 这两天全球计算机科学排名 CSRankings 2024发布啦! 下面二狗就带大家来看一下最新的排名情况。 清华、北大、上海交大AI领域霸榜前三 在AI板块,主要有人工智能、计算机视觉、机器学习、自然语言处理、网络&信息检索5个细分领域。…

冥想第一千零三十四天

1.周三,跑步跑了6.5公里,很舒服。 2.项目上全力以赴的一天。 3.感谢父母,感谢朋友,感谢家人,感谢不断进步的自己。

[Docker] Mac M1系列芯片上完美运行Docker

docker pull qinchz/dm8-arm64 container_name: dm8ports:- "5236:5236"mem_limit: 1gmemswap_limit: 1gvolumes:- /data/dm8:/home/dmdba/data 数据库实例参数已修改,接近oracle使用习惯 #字符集 utf-8 CHARSET1 #VARCHAR 类型对象的长度以字符为单位 …

成员变量与局部变量的区别?

如果你现在需要准备面试,可以关注我的公众号:”Tom聊架构“,回复暗号:”578“,领取一份我整理的50W字面试宝典,可以帮助你提高80%的面试通过率,价值很高!! 语法形式&…

外包做了5个月,技术退步一大半了。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

什么是Helm?它是如何提升云原生应用私有化部署效率的

转载至我的博客 ,公众号:架构成长指南 试想一下,如果有一个项目有50 个微服务,每个微服务都有service、deployment、ingress、pvc等 yaml 文件,算下来大概有 200 个文件,然后这个项目需要基于k8s进行私有化…

动态规划python简单例子-斐波那契数列

def fibonacci(n):dp [0, 1] [0] * (n - 1) # 初始化动态规划数组for i in range(2, n 1):dp[i] dp[i - 1] dp[i - 2] # 计算斐波那契数列的第 i 项print(dp)return dp[n] # 返回斐波那契数列的第 n 项# 示例用法 n 10 # 计算斐波那契数列的第 10 项 result fibonac…

Adding Conditional Control to Text-to-Image Diffusion Models——【论文笔记】

本文发表于ICCV2023 论文地址:ICCV 2023 Open Access Repository (thecvf.com) 官方实现代码:lllyasviel/ControlNet: Let us control diffusion models! (github.com) Abstract 论文提出了一种神经网络架构ControlNet,可以将空间条件控制添加到大型…

【Linux】进程

----------------| 本文目录 |---------------- 1. 进程1.1 基本概念1.2 描述进程 - PCB1.2.1 task_struct - PCB的一种1.2.2 task_struct 内容分类 1.3 组织进程1.4 查看进程1.5 通过系统调用获取进程标示符1.6 通过系统调用创建进程 - fork初识 2. 进程状态2.1 看看Linux内核…

【贪心+循环队列】Dota2 参议院

/** 贪心循环队列* 思路:当每一个参议员行驶禁止权利时,都禁止即将行驶权利的敌方参议员。* 使用两个循环队列,队列中存放位置下标。因此只需要比较两个队列中* 处于队头元素的大小,谁小谁执行权利* auther start* cr…

数字孪生+可视化技术 构建智慧新能源汽车充电站监管平台

前言 充电基础设施为电动汽车提供充换电服务,是重要的交通能源融合类基础设施。近年来,随着新能源汽车产业快速发展,我国充电基础设施持续增长,已建成世界上数量最多、服务范围最广、品种类型最全的充电基础设施体系。着眼未来新…

自行车商城网站网页设计与制作web前端设计html+css+js成品。电脑网站制作代开发。vscodeDrea

【自行车商城网站网页设计与制作web前端设计htmlcssjs成品。电脑网站制作代开发。vscodeDrea】 https://www.bilibili.com/video/BV1wT4y1p7jq/?share_sourcecopy_web&vd_sourced43766e8ddfffd1f1a1165a3e72d7605

AP5153 低压差 线性降压恒流IC 手电筒LED电源驱动

AP5153 是一种 PWM 调光的、低压 差的 LED 线性降压恒流驱动器。 AP5153 仅需要外接一个电阻和一个 NMOS 管就可以构成一个完整的 LED 恒 流驱动电路, 调节该外接电阻就可以调节 输出电流,输出电流可调范围为 20mA 到 3.0A。 AP5153 还可以通过在 DIM…

Leo赠书活动-15期 语义解析:自然语言生成SQL与知识图谱问答实战

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…

C#删除字符串中的回车

string str "这是一段包含\n换行符的文本"; str str.Replace("\r", string.Empty).Replace("\n", string.Empty); Console.WriteLine(str); // 输出结果为:"这是一段包含换行符的文本"

小米机型解锁bl 绕过社区等级5才可以解锁的限制的教程

小米机型目前限制了解锁bl的机制。从以前单一的绑定解锁到目前绑定账号必须小米社区5级的条件限制。切必须要答题分数够才可以申请解锁。限制的根本原因也在为消费者提供更好的服务。避免刷机小白无基础常识解锁bl后第三方固件或者软件造成的故障。另外一方面也在于市场格机脚本…