nginx缓存配置

news2025/1/10 23:48:42

nginx缓存配置

  • 在http模块下配置
  • 在server模块下配置
  • 简单验证下
    • nginx服务器配置
    • 客户机访问nginx缓存服务器

在http模块下配置

注意/data/nginx/cache要自己创建

http {
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m 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:直接把临时文件放在缓存目录中。

#####################################################

  upstream cache_server{
        server 192.168.52.130:80;
        server 192.168.52.140:80;
    }

在这里插入图片描述

在server模块下配置

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

在这里插入图片描述

#对于一些实时性要求非常高的页面或数据来说,就不应该去设置缓存,下面来看看如何配置不缓存的内容。

server {
  listen 80;
  server_name cache.lion.club;
  #URI 中后缀为 .txt 或 .text 的设置变量值为 "no cache"
  if ($request_uri ~ \.(txt|text)$) {
   set $cache_name "no cache"
  }
 location / {
    proxy_no_cache $cache_name;      #判断该变量是否有值,如果有值则不进行缓存,如果没有值则进行缓存
    proxy_cache my_cache;            #设置缓存内存
    proxy_cache_valid 200 5m;        #缓存状态为200的请求,缓存时长为5分钟
    proxy_cache_key $request_uri;    #缓存文件的key为请求的URI
    add_header Nginx-Cache-Status $upstream_cache_status    #把缓存状态设置为头部信息,响应给客户端
    proxy_pass http://cache_server;  #代理转发
  }:
}

简单验证下

再配置2个nginx服务器做静态页面
nginx缓存服务器:192.168.52.120
nginx1:192.168.52.130
nginx2:192.168.52.140
客户机:192.168.52.104

nginx服务器配置

在/usr/share/nginx/html目录下配置静态页面
在这里插入图片描述

vim test,html

在这里插入图片描述

客户机访问nginx缓存服务器

在这里插入图片描述
查看日志文件
在这里插入图片描述

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

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

相关文章

Kafka基础入门篇

一、kafka简介 其主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的机器上也能做到单机支持每秒100K条消息的传输支持Kafka Server间的消息分区,及分…

资源释放的方式

资源释放通常指的是关闭文件、网络连接、数据库连接等资源,以释放系统资源并防止资源泄漏。 1:try-catch-finally finally:在异常处理时提供finally块来执行所有清除操作,比如IO流中的释放资源特点:被finally控制的语句最终一定…

浅析高速公路隧道变电所智能照明控制方案

【摘要】:目前公路隧道无人值守变电所均已设置了视频监控设施,在日常运营中由于光线不足,隧道监控室人员无法远程巡视,存在监控的盲检、漏检问题。该问题存在是由于传统照明方式无法完远程开启照明设施,文章针对该问题…

FPGA入门系列12--RAM的使用1

文章简介 本系列文章主要针对FPGA初学者编写,包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解,旨在更快速的提升初学者在FPGA开发方面的能力,每一个章节中都有针对性的代码…

使用linux的系统驱动点灯

使用linux的系统驱动点亮开发板的灯 **要求:**使用linux驱动点亮开发板的灯 实验现象 (LED1没亮是因为本人的开发板LED1物理损坏) head.h代码 #ifndef __HEAD_H__ #define __HEAD_H__typedef struct{volatile unsigned int moder;volatil…

DAY38:贪心算法(六)分发糖果+柠檬水找零

文章目录 135.分发糖果思路第一种情况:右>左第二种情况:左>右(倒序遍历)两种情况的结果合并,通过取最大值 完整版总结 860.柠檬水找零思路完整版总结 135.分发糖果 本题涉及到一个思想,就是处理好一…

位图的详解

目录 位图 位图的概念 位图的实现 位图常见三道面试题 1.给定100亿个整数,设计算法找到只出现一次的整数? 2. 给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集? 3. 位图应用变形…

C#程序以管理员权限运行

在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录、系统注册表等可能影响系统正常运行的设置进行写操作。这个机…

【sap2000】【python】python相关的3个案例-1/3

python相关的3个案例 Python COM,Python NET,IronPython的区别 这三个术语都与 Python 语言和其他编程平台(尤其是 Microsoft .NET 及其组件)之间的互操作性有关。我们来看看它们之间的主要区别: Python COM&#xf…

【vim】Linux使用vim编写代码:头部自动添加提示信息+自动缩进、自动换行等配置(~/.vimrc)

前言: 在编写代码时,为了提高代码的可读性和维护性,我们经常在文件的头部添加一些信息提示,如作者、日期、版本号等。本文介绍了如何在 Vim 编辑器中实现自动添加信息提示的功能。 结尾提供~/.vimr参考配置,可提高代码…

第2章 变量

目录 1 变量1.1 什么是变量?1.2 声明变量1.2 变量的原理 2 数据类型2.1 基本数据类型2.1.1 取值范围公式2.1.2 整型2.1.3 浮点型2.1.4 字符型2.1.5 布尔型 2.2 引用数据类型2.2.1 数组[]2.2.2 类class2.2.3 接口interface 3 数据类型转换3.1 自动类型转换3.2 强制类…

备份c盘中的所有数据的3种方法推荐!

为什么要备份C盘中的所有数据? 备份c盘中的所有数据,主要是为了避免以下几种突发情况: 感染病毒。 操作不当导致系统文件损坏,崩溃。 蓝屏死机(BOSD)或黑屏死机。 物理灾害。 磁盘出现物理坏道等。…

QWebEngine应用---cookies存储及自动登录

什么是cookies? 浏览器Cookie指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据,当前主流网站和浏览器都使用Cookies来实现自动登录 QWebEngineCookieStore QWebEngine基于Chromium内核,和Chrome浏览器一样支持…

微信聚合聊天,轻松一人管理多个微信

看这篇文章的你是否有以下烦恼: 1.微信账号太多,管理过于麻烦 2.微信号多,需要很多员工来管理,人工费用多 3.多个微信打开后会造成微信登陆界面过多,切换操作十分不方便 4.当微信多的时候,新消息提示也多…

docker安装nacos并配置数据库

1、下载镜像 docker pull nacos/nacos-server 查看下载镜像 docker images 2、启动nacos 注意:如果nacos版本在2.0及以上,需要把8848、9848和9849三个端口映射出来,否则访问会404失败 docker run --env MODEstandalone \ --name nacos -d…

【AI新趋势期刊#2】AI发明计算机算法,如何给大模型排行,照片秒变二维码,视频一键动漫风

前言 每天都要浏览大量AI相关新闻,是不是感到信息量爆炸,有效信息少? 这么多新产品和新工具,到底哪些是真正是有价值的,哪些只是浮躁的一时热点? 想参与AI产品和工具的开发,从哪里能够获得大…

MongoDB【MongoDB命令、CRUD操作 】(二)-全面详解(学习总结---从入门到深化)

目录 MongoDB命令 CRUD操作 MongoDB命令 基本操作 查看数据库 show dbs; 切换数据库 如果没有对应的数据库则创建 use 数据库名;创建集合 db.createCollection("集合名") 查看集合 show tables; show collections; 删除集合 db.集合名.drop(); 删除当前…

Robust Secure Aggregation with Lightweight Verification for Federated Learning

摘要: 可验证的安全聚合(VSA)是联邦学习(FL)中的关键过程,其中安全聚合实现局部梯度聚合,同时保留数据机密性,并且可验证性使参与者能够验证中央服务器(CS)返…

【Linux】程序替换

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️小林爱敲代码       🛰️博客专栏:✈️Linux之路       🛰️社区 :✈️ 进步学堂       &a…

51单片机地震监测语音报警提示系统MPU6050TTS报警

实践制作DIY- GC0153--- 地震监测语音报警提示系统 基于51单片机设计------- 地震监测语音报警提示系统 二、功能介绍: STC89C52单片机TTS语音播报模块MPU-6050角度传感器LED灯显示一个按键 1.获取MPU-6050角度数据,然后根据角度数据计算出0~10级的地震…