首页 > 系统相关 >16、nginx缓存机制

16、nginx缓存机制

时间:2024-01-17 15:15:22浏览次数:32  
标签:缓存 16 cache nginx 指令 proxy 默认值 valid

1.proxy_cache相关指令

  • Nginx的 Web 缓存服务主要由 proxy_cache 相关指令集和fastcgi关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对 FastCGI的动态程序进行缓存。

1.1 proxy_cache 指令

语法: proxy_cache zone_name;
默认值: None
使用环境: http、server、location

  • 该指令用于设置哪个缓存区将被使用,zone_name 的值为 proxy_cache_path 指令创建的缓存区名称。

1.2 proxy_cache_path 指令

语法: proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];
默认值: None
使用环境: http

该指令用于设置缓存文件的存放路径。示例如下:

proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache one:500m inactive=1d max_size=30g;

  • 注意该指令只能在 htp标签内配置
    • levels 指定该缓存空间有两层 hash 目录,第一层目录为1个字母,第二层为2个字母。保存的文件名会类似/data0/proxy_cache_dir/c/29/7f54b2df7773722d382f4809d65029c
    • keys_zone参数用来为这个缓存区起名
    • 500m指内存缓存空间大小为500MB
    • inactive的1d指如果缓存数据在1天内没有被访问,将被删除
    • max_size的30g是指硬盘缓存空间为30GB。

1.3 proxy_cache_methods 指念

语法: proxy_cache_methods [GET HEAD POST];
默认值: proxy_cache_methods GET HEAD
使用环境:http、server、location

  • 该指令用于设置缓存哪些HTTP方法,默认缓存HTTP GET/HEAD方法,不缓存HTTP POST方法。

1.4 proxy_cache_min_uses指令

语法: proxy_cache_min_uses the_number;
默认值: proxy_cache_min_uses 1;
使用环境: http、server、location

  • 该指令用于设置缓存的最小使用次数,默认值为 1。

1.5 proxy_cache_valid 指令

语法: proxy_cache_valid reply_code [reply_code ...] time;
默认值: None
使用环境: http、server、location

  • 该指令用于对不同返回状态码的URL设置不同的缓存时间,例如:
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;

设置200 302状态的URL缓存10分钟,404状态的URL缓存1分钟。

proxy_cache_valid 5m;

如果不指定状态码,直接指定缓存时间,则只有200、301、302 状态的URL缓存5分钟

proxy_cache_valid  200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;

对没有单独设置的状态码,全部设置缓存时间为 1 分钟。

1.6 proxy_cache_key 指令

语法: proxy_cache_key line;
默认值: None
使用环境: http、server、location

  • 该指令用来设置 Web 缓存的 Key 值,Nginx 根据 Key值md5 哈希存储缓存。一般根据$host(域名)、$request_uri(请求的路径)等变量组合成proxy_cache key。例如:

    proxy_cache_key "$host:$server_port$uri$isargs$args";
    

标签:缓存,16,cache,nginx,指令,proxy,默认值,valid
From: https://www.cnblogs.com/ccblblog/p/17970034

相关文章

  • P2216 [HAOI2007] 理想的正方形 题解
    题目链接:理想的正方形比较明显的,我们可以用二维ST表解决,具体的二维ST表的实现,只需要知道一点:对于\(st[i][j][t]=max(i\simi+2^t,j\simj+2^t)\),表示的是如图所示的大正方形范围内的最值,它可以拆成从四个小正方形的左端点走\(2^{t-1}\)长的小正方形组成,预处理完直接查......
  • Inserting a node at beginning,全局变量头指针【1月16日学习笔记】
    点击查看代码//insertinganodeatbeginning,全局变量头指针#include<iostream>usingnamespacestd;structnode{ intdata; node*next;};node*A;voidinsert(intx){ node*temp=newnode;//创建新节点 temp->data=x; temp->next=A;//新节点尾巴指......
  • Inserting a node at beginning,局部变量头指针版本1【1月16日学习笔记】
    点击查看代码//insertinganodeatbeginning,局部变量头指针版本1#include<iostream>usingnamespacestd;structnode{ intdata; node*next;};node*insert(intx,node*A){ node*temp=newnode;//创建新节点 temp->data=x; temp->next=A;//新节......
  • Inserting a node at beginning,局部变量头指针版本2【1月16日学习笔记】
    点击查看代码//insertinganodeatbeginning,局部变量头指针版本2#include<iostream>usingnamespacestd;structnode{ intdata; node*next;};voidinsert(intx,node**A){ node*temp=newnode;//创建新节点 temp->data=x; temp->next=*A;//新......
  • 遍历链表,将节点接到末端 【1月16日学习笔记】
    点击查看代码//遍历链表,将节点接到末端#include<iostream>usingnamespacestd;structnode{ intdata;//数据 node*next;//尾巴};//定义节点结构体node*A;//头指针固定,globalvariabl......
  • centos 服务器buffer/cache缓存占用太大
    修改服务器此相关的参数在/proc/sys/vm目录下 vm.min_free_kbytes=409600;vm.vfs_cache_pressure=200;vm.swappiness=40。调整MIN_FREE_KBYTES的目的是保持物理内存有足够的空闲空间,防止突发性的换页。swapiness缺省为60,减少swapiness会使系统尽快通过swapout不使用的进程资源......
  • STM32CubeMX教程16 DAC - 输出3.3V内任意电压
    1、准备材料开发板(正点原子stm32f407探索者开发板V2.4)STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动野火DAP仿真器XCOMV2.6串口助手2、实验目标使用STM32CubeMX软件配置STM32F407开发板的DACOUT1实现输出0-3.3V任意模拟电压,然后用ADC1_IN5单通......
  • 20230116python基本语法day1
    20230116python基本语法day1代码看一行写一行。菜鸟教程python3成为自己尊重自己欣赏的自己。注意点:python中,#TODO待处理,显示为黄色,这边的问题要在最后解决掉,这很重要。在java中可能是//TODO    解释器的作用是运行文件,给代码解释文件。......
  • 254-layui table 获取当前列表的缓存数据
    首先,需要获取表格的ID1、表格工具栏的操作按钮获取,按钮位于表格的左上角或者右上角table.on('toolbar(itemFieldSrcTable1)',function(obj){varid=obj.config.id;varlayEvent=obj.event;active[layEvent].call(this,{tableIns:tableIns1,row:{name:''}});......
  • 已知IP地址是192.168.5.121,子网掩码是255.255.255.248,求网络地址和主机地址
    方法1首先,将Ip地址转换为二进制:192.168.5.121转换为二进制:11000000.10101000.00000101.01111001然后将子网掩码转换成二进制:255.255.255.248转换为二进制:11111111.11111111.11111111.11111000网络地址=IP地址&子网掩码192.168.5.121&255.255.255.248=192.168.5.12......