Nginx缓存配置

Nginx作为Web缓存服务器,通过proxy_cache_path配置缓存路径和大小,使用proxy_cache_key设定缓存键,提高响应速度并减轻服务器负载。缓存策略包括缓存有效时间、不缓存特定内容等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx缓存配置

  • Nginx也可以做缓存反向代理

  • 缓存就是数据交换的缓冲区(Cache),当用户要获取数据的时候,会先从缓存中去查询获取数据,如果缓存中有就会直接返回给用户,如果缓存中没有,则会发请求从服务器重新查询数据,将数据返回给用户的同时将数据放入缓存,下次用户就会直接从缓存中获取数据。

  • Nginx 作为 Web 缓存服务器,它介于客户端和应用服务器之间,当用户通过浏览器访问一个 URL 时,Web 缓存服务器会去应用服务器获取要展示给用户的内容,将内容缓存到自己的服务器上,当下一次请求到来时,如果访问的是同一个 URL,Web 缓存服务器就会直接将之前缓存的内容返回给客户端,而不是向应用服务器再次发送请求。Web 缓存降低了应用服务器、数据库的负载,减少了网络延迟,提高了用户访问的响应速度,增强了用户的体验。

配置方法

vim /usr/local/nginx/conf/nginx.conf #配置文件

在这里插入图片描述

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.60.44:80;
        server 192.168.60.112:80;
    }
    
    server {
        listen 80;
        server_name www.kfc.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;     #设置代理转发的后端服务器的协议和地址
        }
    }
}

#重启服务
systemctl restart nginx
服务器配置
#节点1:(60.44)
echo "hello" >> /usr/local/nginx/html/test.html
#节点2:(60.112)
echo "HELLO" >> /usr/local/nginx/html/test.html

#客户机的域名映射配置
vim /etc/hosts
添加
192.168.60.8 www.kfc.com

访问IP
在这里插入图片描述

清除本地浏览器缓存再次访问域名
在这里插入图片描述

在这里插入图片描述

#对于一些实时性要求非常高的页面或数据来说,就不应该去设置缓存,下面来看看如何配置不缓存的内容。
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
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;  #代理转发
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值