nginx-nginx的缓存集成

缓存的概念

缓存就是数据交换的缓冲区,被称作cache,访用户想要获取数据时,就会先从缓存中去查询数据,如果缓存中有就会直接返回给用户,若果缓存中没有,则会发出请求从服务器中重新查询数据,将数据返回给用户的同时将数据放入缓存,下次用户就会直接从缓存中获取数据,节省资源访问的时间

缓存的使用场景

缓存使用场景表
场景作用
OS磁盘缓存减少磁盘机械操作
数据库缓存减少文件系统的IO操作
应用程序缓存减少对数据库的查询
Web服务器缓存减少对应用服务器请求次数
浏览器缓存减少与后台的交互次数

缓存的优缺点

缓存的优点

提高性能

  • 缓存技术通过存储经常访问的数据,显著减少了访问原始数据源(如数据库或远程服务器)的次数,从而加快了数据访问速度。
  • 在Web应用中,缓存可以减少服务器响应时间,提高页面加载速度,提升用户体验。

减轻服务器负载

  • 通过将频繁请求的数据存储在缓存中,服务器可以减少处理请求的数量,从而降低负载。
  • 这有助于防止服务器过载,提高系统的稳定性和可靠性。

降低网络延迟

  • 缓存技术可以减少网络数据传输量,从而降低网络延迟。
  • 对于远程服务或分布式系统,缓存可以显著提高通信效率。

节省成本

  • 通过提高性能和减轻服务器负载,缓存技术可以延长硬件的使用寿命,减少升级和维护成本。
  • 在一些情况下,缓存还可以减少带宽费用,因为需要传输的数据量减少了。

缓存的缺点

数据一致性问题

  • 缓存中的数据可能与原始数据源不一致,特别是在数据频繁更新或删除的情况下。
  • 这可能导致用户看到过时或错误的信息。

缓存穿透

  • 如果缓存中没有存储某个请求所需的数据,并且该数据在原始数据源中也不存在,那么每次请求都会绕过缓存直接访问原始数据源,导致缓存失效。
  • 这可能发生在攻击者故意请求不存在的数据时,以绕过缓存并增加服务器的负载。

缓存雪崩

  • 如果缓存中的大量数据同时失效,那么大量请求将直接访问原始数据源,导致服务器负载急剧增加。
  • 这可能发生在缓存过期时间设置不当或缓存被恶意清空的情况下。

缓存预热

  • 在缓存初始化或重建时,需要将数据从原始数据源加载到缓存中。
  • 这可能需要一定的时间和资源,并且在这段时间内,系统的性能可能会受到影响。

复杂性增加

  • 引入缓存技术后,系统的设计和维护变得更加复杂。
  • 需要考虑缓存的更新策略、失效策略、数据一致性维护等问题。

资源消耗

  • 缓存需要占用一定的存储空间,并且可能需要额外的计算资源来管理缓存。
  • 在某些情况下,如果缓存配置不当,可能会导致资源浪费或性能下降。

nginx缓存指令

缓存指令是基于ngx_http_proxy_module模块相关指令集来进行完成的,遇到各种未知问题可以到官方文档进行查看

proxy_cache_path指令

该指令用于设置缓存的文件存放路径

proxy_cache_path指令表
语法

proxy_cache_path path [levels=numbers] 

keys_zone=zone_name;zone_size[inactive=time][max_size=size];

默认值---
位置http

path:缓存路径 如:/usr/local/proxy_cache

levels:指定该缓存空间对应的目录,最多可以设置为三层,每层取值为1|2 如:

levels=1:2  缓存空间有两层目录,第一层是1个字母,第二次是2个字母

举例说明:

monkey[key]通过MD5加密以后得值为   21eb8dc2babd4f6db0b3bef1923d7398  

(可以使用md加密工具进行解析)

levels=1:2   最终的存储路径为:/usr/local/proxy_cache/8/39

levels=2:1:2 最终的存储路径为:/usr/local/proxy_cache/98/3/d7

levels=2:2:2 最终的存储路径为:/usr/local/proxy_cache/98/73/3d

keys_zone:用来为这个缓存区设置名称和大小,如

keys_zone=monkey:200m 缓存区的名称为monkey,大小为200M

inactive:指定缓存的数据多次时间未被访问就会被删除,如

inactive=1d 缓存数据在1天内没有被访问就会被删除

max_size:设置最大缓存空间,如果缓存空间存满,默认会覆盖缓存时间最长的资源,如

max_size=20g

配置实例:

proxy_cache_path /usr/local/proxy_cache levels=2:1 keys_zone=monkey:200m inactive=1d max_size=20g;

proxy_cache指令

该指令用来开启或者关闭代理缓存,如果是开启,则自定义使用哪个缓存区来进行缓存

proxy_cache指令表
语法proxy_cache zone_name;off;
默认值proxy_cache off;
位置http块,server块,location块

zone_name:指定使用缓存区的名称

proxy_cache_key指令

该指令用设置web缓存的key值,nginx会根据key值MD5进行哈希存储缓存

proxy_cache_key指令表
语法proxy_cache_key key;
默认值proxy_cache_key $scheme$proxy_host$request_uri;
位置http块,server块,location块

默认kye值为:请求的协议+代理主机+请求URI来作为key值

proxy_cache_valid指令

该指令用来对不同返回状态码的URL设置不同的缓存时间

proxy_cache_valid指令表
语法 
  
  

 

proxy_cache_min_uses指令

 

 

proxy_cache_methods指令

 

 

nginx缓存案例

nginx清除缓存

nginx设置资源不缓存

指令介绍

条件变量介绍

案例实现

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

密钥登录服务器

1. 生成 SSH 密钥对 如果您还没有生成密钥对,可以使用以下命令生成: ssh-keygen 在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件:id_rsa 为私钥,id_rsa.pub 为公钥。 在提示时,您可…

nginx 部署前端vue项目

👨‍⚕ 主页: gis分享者 👨‍⚕ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕ 收录于专栏:前端工程师 文章目录 一、🍓什么是nginx?二、🍓nginx 部署…

三大行业案例:AI大模型+Agent实践全景

本文将从AI Agent和大模型的发展背景切入,结合51Talk、哈啰出行以及B站三个各具特色的行业案例,带你一窥事件驱动架构、RAG技术、人机协作流程,以及一整套行之有效的实操方法。具体包含内容有:51Talk如何让智能客服“主动进攻”&a…

HTML-CSS-常见标签与样式

目录 一. 央视新闻排版1.1 标题1.2 正文1.3 案例1.3.1 顶部导航栏1.3.2 flex布局1.3.3 表单标签1.3.4 表单项标签1.3.5 表格 1.3 课程总结 \quad 一. 央视新闻排版 \quad \quad 1.1 标题 \quad ALTp就是用AI快速生成 标题一共有6级 \quad 1.2 正文 \quad 定义视频 定义图片 样…

【信息安全设计】系统安全设计方案,系统安全保护设施设计实施方案(Word原件)

1.1 总体设计 1.1.1 设计原则 1.2 物理层安全 1.2.1 机房建设安全 1.2.2 电气安全特性 1.2.3 设备安全 1.2.4 介质安全措施 1.3 网络层安全 1.3.1 网络结构安全 1.3.2 划分子网络 1.3.3 异常流量管理 1.3.4 网络安全审计 1.3.5 网络访问控制 1.3.6 完整性检查 1.…

基于STP文件的智能比对系统:思通数科带来高效机械制造解决方案

在机械制造领域,设计图纸与实物之间的精准对比至关重要,传统的比对方式往往需要耗费大量时间且容易出现错误,导致生产效率低下并影响产品质量。为了解决这些问题推出了一套基于STP文件的智能比对系统,结合大模型技术,集…

【51项目】51单片机自制小霸王游戏机

视频演示效果: 纳新作品——小霸王游戏机 目录: 目录 视频演示效果: 目录: 前言: 一、连接方式: 1.1 控制引脚 1.2. 显示模块 1.3. 定时器 1.4. 游戏逻辑与硬件结合 1.5. 中断处理 二、源码分析&#xff1a…

SpringMVC(五)实现文件上传

目录 1.先导jar包 2.在Springmvc.xml配置文件上传解析器 3. 编写文件上传的html页面 4.在controller包中创建FileController.class文件 5.文件下载 6.重启服务器测试 1.先导jar包 <dependency><groupId>commons-fileupload</groupId><artifactId>…

LabVIEW声波谐振管自动化测量系统

开发了一种基于LabVIEW的声波谐振管自动化测量系统。该系统利用LabVIEW的强大功能&#xff0c;实现了对声波谐振频率的精确测量&#xff0c;提高了实验数据的采集效率和准确性。系统主要应用于物理教学和科研中&#xff0c;用于研究声波在谐振管中的传播特性。 项目背景 传统的…

docker Error response from daemon

问题 Error response from daemon: Get "https://index.docker.io/v1/search?qnginx&n25": read tcp 192.168.50.233:54354->54.198.86.24:443: read: connection reset by peer Unable to find image redis:latest locally docker: Error response from d…

PHP框架+gatewayworker实现在线1对1聊天--gatewayworker说明(2)

文章目录 gatewayworker使用说明onConnect 说明 gatewayworker使用说明 gatewayworker里只需要使用Applications\YourApp下的Events.php文件。 对文件的代码进行一下改造&#xff0c;如下&#xff0c;我们只需要用到onConnect方法&#xff0c;写法固定&#xff0c;其他方法都…

【Hadoop】Hadoop安全之Knox网关

目录 一、概述 2.1 knox介绍 2.2 版本信息 二、部署 三、验证Knox网关 3.1 Hdfs RESTFULL 3.2 HDFSUI 3.3 YARNUI 3.4 HBASEUI 一、概述 2.1 knox介绍 Apache Knox网关是一个用于与Apache Hadoop部署的REST api和ui交互的应用程序网关。Knox网关为所有与Apache Hadoop…

PyCharm专项训练5 最短路径算法

一、实验目的 本文的实验目的是通过编程实践&#xff0c;掌握并应用Dijkstra&#xff08;迪杰斯特拉&#xff09;算法和Floyd&#xff08;弗洛伊德&#xff09;算法来解决图论中的最短路径问题。 二、实验内容 数据准备&#xff1a; 使用邻接表的形式定义两个图graph_dijkstra…

分布式算法(五):初识ZAB协议

文章目录 一、什么是Zookeeper二、ZAB与Zookeeper的关系为什么Zookeeper不直接使用Paxos 三、ZAB简介1.名词解释提案&#xff08;Proposal&#xff09;事务&#xff08;Transaction&#xff09;原子广播&#xff08;Atomic Broadcast&#xff09; 2.集群角色领导者&#xff08;…

word中插入zotero引用

1、参考文献末尾没有文献&#xff1f; 在文献条目要显示的地方点击“refresh” 2、参考文献条目没有悬挂缩进&#xff1f; 把“书目”添加到样式库中&#xff0c;修改样式为悬挂缩进1.5字符 3、交叉引用&#xff1f; 宏 新建一个宏 粘贴下面代码 Public Sub ZoteroLinkCita…

利用3DGS中convert.py处理自采数据

前言 3DGS源码中convert.py提供对自采数据集的处理&#xff0c;需要预先安装Colmap和ImageMagick. ubuntu22.04安装colmap 点击进入NVIDIA官网&#xff0c;查看GPU的CMAKE_CUDA_ARCHITECTURES 1、克隆colmap源码&#xff0c;并进入colmap文件夹 git clone https://github.c…

【Vue】vue-router使用addRoute动态加载路由后刷新页面404

场景&#xff1a;动态加载路由&#xff0c;点击菜单路由跳转正常&#xff0c;但刷新页面报404 原因&#xff1a;使用404做异常路由捕获 刷新页面会导致路由丢失&#xff0c;重建路由时先加载了静态路由&#xff08;包含异常路由捕获404&#xff09;&#xff0c;此时动态路由还未…

USB射频微波功率计的功能与优势-盛铂科技

USB射频功率计是一种用于测量射频信号&#xff08;RF&#xff09;功率的仪器&#xff0c;它通过USB接口与计算机或其他设备连接&#xff0c;以便于进行数据采集、处理和显示。 主要功能 功率测量&#xff1a;能够测量射频信号的功率&#xff0c;通常以毫瓦&#xff08;mW&…

【Vim Masterclass 笔记01】Section 1:Course Overview + Section 2:Vim Quickstart

文章目录 Section 1&#xff1a;Course Introduction 课程概述S01L01 Course Overview 课程简介课程概要 S01L02 Course Download 课程资源下载S01L03 What Vim Is and Why You Should Learn It 何为 Vim&#xff1f;学来干啥&#xff1f;1 何为 Vim2 为何学 Vim Section 2&…

Elasticsearch JavaRestClient版

文章目录 初始化RestHighLeveClient&#xff08;必要条件&#xff09;索引库操作1.创建索引库&#xff08;4步&#xff09;2.删除索引库&#xff08;3步&#xff09;3.判断索引库是否存在&#xff08;3步&#xff09;4.总结&#xff1a;四步走 文档操作1.创建文档&#xff08;4…