nginx-nginx的缓存集成

news2025/1/5 11:09:58

缓存的概念

缓存就是数据交换的缓冲区,被称作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设置资源不缓存

指令介绍

条件变量介绍

案例实现

 

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

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

相关文章

Browser Use:AI智能体自动化操作浏览器的开源工具

Browser Use:AI智能体自动化操作浏览器的开源工具 Browser Use 简介1. 安装所需依赖2. 生成openai密钥3. 编写代码4. 运行代码5. 部署与优化5.1 部署AI代理5.2 优化与扩展总结Browser Use 简介 browser-use是一个Python库,它能够帮助我们将AI代理与浏览器自动化操作结合起来;…

tcpdump指南(1)

大家读完觉得有意义记得关注和点赞!!! tcpdump是一种在网络上转储流量的网络工具。 这篇文章服务器作为一些常用命令的指南。如需完整指南, 请参阅手册页,或在 Linux 计算机上。man tcpdump 1 基本选项 帮助摘要&#…

14. 日常算法

1. 面试题 02.04. 分割链表 题目来源 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 class Solution { public:ListNo…

termux-boot安卓开机自动启动应用

termux安装 github 蓝奏云 v119.1 termux-boot安装 github 蓝奏云 v0.8.1 安装 给权限运行加锁后台 am启动应用命令 am start -n 包名/启动项获取包名和启动入口(图中app为爱玩机工具箱) 例 简黑时钟蓝奏云 包名com.hm.jhclock 桌面启动项com.hm.jh…

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码,我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时,才会发现它就像一本魔法书,轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具?它究…

设计模式 创建型 建造者模式(Builder Pattern)与 常见技术框架应用 解析

单例模式(Singleton Pattern),又称生成器模式,是一种对象构建模式。它主要用于构建复杂对象,通过将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建出具有不同表示的对象。该模式的核心思想是将…

MATLAB程序转C# WPF,dll集成,混合编程

工作中遇到一个需求,有一部分算法的代码需要MATLAB来进行处理,而最后需要集成到C#中的wpf项目中去,选择灵活性更高的dll,去进行集成。(可以简单理解为:将MATLAB的函数,变为C#中类的函数成员&…

常见中间件漏洞复现

1.tomcat 1.1 CVE-2017-12615(put上传) 当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产 ⽣,(需要允许put请求) , 攻击者可以利⽤PUT方法通过精心构造的数据包…

C#Halcon深度学习预热与否的运行时间测试

在深度学习推理应用阶段,涉及到提速,绕不开一个关键词“预热”。 在其他地方的“预热”,预先加热到指定的温度。通常指预习准备做某一样事时,为此做好准备。 而在深度学习推理应用阶段涉及的预热通常是指GPU预热,GPU在…

获取 Astro Bot AI 语音来增强您的游戏体验!

有很多用户尝试过Astro Bot,却被Astro Bot可爱的声音所吸引。您是否想知道如何使用 Astro Bot 语音来拨打恶作剧电话或用他的声音说话?如果您有,那么这篇文章适合您。我们将向您展示如何为 Astro Bot 提供逼真的 AI 声音并在在线对话中使用它…

重装操作系统后 Oracle 11g 数据库数据还原

场景描述: 由于SSD系统盘损坏,更换硬盘后重装了操作系统,Oracle数据库之前安装在D盘(另一个硬盘),更换硬盘多添加一个盘符重装系统后盘符从D变成E,也就是之前的D:/app/... 变成了现在的 E:/app/...,重新安装…

IDEA+Docker一键部署项目SpringBoot项目

文章目录 1. 部署项目的传统方式2. 前置工作3. SSH配置4. 连接Docker守护进程5. 创建简单的SpringBoot应用程序6. 编写Dockerfile文件7. 配置远程部署 7.1 创建配置7.2 绑定端口7.3 添加执行前要运行的任务 8. 部署项目9. 开放防火墙的 11020 端口10. 访问项目11. 可能遇到的问…

UE5材质节点Camera Vector/Reflection Vector

Camera Vector相机向量,输出像素到相机的方向,结果归一化 会随着相机移动而改变 Reflection Vector 反射向量,物体表面法线反射到相机的方向,x和y和camera vector相反 配合hdr使用

python实现自动登录12306抢票 -- selenium

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 python实现自动登录12306抢票 -- selenium 前言其实网上也出现了很多12306的代码,但是都不是最新的,我也是从网上找别人的帖子,看B站视频&…

鸿蒙1.2:第一个应用

1、create Project,选择Empty Activity 2、配置项目 project name 为项目名称,建议使用驼峰型命名 Bundle name 为项目包名 Save location 为保存位置 Module name 为模块名称,即运行时需要选择的模块名称,见下图 查看模块名称&…

Docker安装(Docker Engine安装)

一、Docker Engine和Desktop区别 Docker Engine 核心组件:Docker Engine是Docker的核心运行时引擎,负责构建、运行和管理容器。它包括守护进程(dockerd)、API和命令行工具客户端(docker)。适用环境&#…

Ceph 手动部署(CentOS9)

#Ceph手动部署、CentOS9、squid版本、数字版本19.2.0 #部署服务:块、对象、文件 一、部署前规划 1、兼容性确认 2、资源规划 节点类型节点名称操作系统CPU/内存硬盘网络组件安装集群节点CephAdm01CentOS94U/8GOS:40G,OSD:2*100GIP1:192.169.0.9(管理&集群),IP2:…

springboot-启动流程

by shihang.mai 1. 启动流程图 查看springboot2.3.7源码后绘制下图。 springboot启动流程图 main启动,new SpringApplication()构造方法里面 判断当前应用程序类型reactive、servlet、none获取所有的ApplicationListener对应的对象获取所有的ApplicationContextInit…

Flutter:打包apk,详细图文介绍(一)

困扰了一天,终于能正常打包apk安装了,记录下打包的流程。建议参考我这篇文章时,同时看下官网的构建说明。 官网构建并发布 Android 应用详情 1、AS创建Flutter项目 2、cmd执行命令 生成一个sunluyi.jks的文件,可以自行把sunluyi替…

linux下安装tun模块详细教程

原本是要看tcp/ip协议栈,找到了https://github.com/chobits/tapip这个。然后需要支持tun,完了开始安装。 TUN/TAP是一个虚拟网络设备,用于实现用户态程序和内核网络协议栈之间的数据交互。 1、安装环境 我的系统是ubuntu16.04 VMWare虚拟机&a…