广告
返回顶部
首页 > 资讯 > 服务器 >nginx缓存以及清除缓存的使用
  • 709
分享到

nginx缓存以及清除缓存的使用

2024-04-02 19:04:59 709人浏览 泡泡鱼
摘要

目录缓存清除缓存控制Nginx缓存缓存 缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器

缓存

  • 缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器反复去查询数据,而是由本地保存的副本响应数据。
  • 保存在本地的这些副本具有一个过期时间,超过该时间将会更新。判断一个副本数据是否为过期数据的办法有很多,可以使用保留时间来判断,也可以使用数据完整度来判断。
  • 许多WEB服务器还具有校验功能,就是当某些副本数据过期以后,先向后端服务器发送校验请求,后端服务器对这些数据进行校验,如果发现原数据和副本没有差别,则将过期副本重新置为可用副本。

缓存的好处

  • 减轻服务器负载
  • 提供网页响应效率
  • 降低网络阻塞,增强网络可扩展性

为什么使用缓存?

  • 服务器处理能力以及负载能力出现瓶颈,响应效率大大降低
  • 为了减少网络传输延迟,提升响应效率
  • 能够避免因为后端服务器出现异常以及网络故障,客户端请求数据副本能够及时响应

nginx的缓存机制

proxy模块指令

以上nginx配置结合使用:

Http {
  .
  .
  .
  proxy_cache_path /cache/nginx levels=1:2 keys_zone=imooc_cache:10m max_size=5g inactive=60m use_temp_path=off;

  .
  .
  .
  server {
    .
    .
    .
    location /api/ {
      proxy_cache imooc_cache;
      proxy_pass 127.0.0.1:81/api/;
      proxy_cache_valid 200 304 12h;
      proxy_cache_valid any 10m;
      proxy_cache_key $host$uri$is_args$args;
      include proxy_params;
    }
  }
}

proxy_params文件的配置如下:

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;

访问一次页面,并向 http://192.168.148.168:8000/api/ 发起一个接口数据请求,查看/cache/nginx目录下的缓存结果:

[root@localhost 02]# cat 9563faff155b9fcfbf3fb1b16c253021 
¿]n`ÿÿÿÿÿÿÿÿÿ´m`Džt> 
KEY: 192.168.148.170/api/index.PHP
HTTP/1.1 200 OK
Date: Wed, 07 Apr 2021 13:34:55 GMT
Server: Apache/2.4.46 (Unix) php/7.4.16
X-Powered-By: PHP/7.4.16
Content-Length: 31
Connection: close
Content-Type: text/html; charset=UTF-8

this is 192.168.148.170_php_new[root@localhost 02]# 

清除缓存

ngx_cache_purge是nginx的第三方模块,能够帮助我清除nginx中的缓存。

如果启动了缓存,没有安装这个模块(ngx_cache_purge),重启nginx会出现异常:

2021/04/18 10:15:36 [emerg] 12180#0: unknown directive “proxy_cache_purge” in /vhost/test_170.cc.conf:20

这个异常是在指示我们,找不到该指令的驱动,需要按照相关模块。

ngx_cache_purge只是nginx的第三方模块,并不是某个特殊的软件,所以我们需要对nginx重新进行编译,操作如下:

./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_gzip_static_module --with-http_stub_status_module --with-file-aio --with-http_realip_module --with-http_ssl_module --with-pcre=/home/pcre-8.44 --with-zlib=/home/zlib-1.2.11 --with-openssl=/home/openssl-1.1.1g --add-module=/home/ngx_cache_purge-2.3

make -j2

make install

配置nginx:

location ~ /clear_cache(.*) {
     allow   all;
     proxy_cache_purge imooc_cache $host$1$is_args$args;
}

缓存清除测试
访问:http://192.168.148.170:8000/clear_cache//api/index.php, 访问这个链接将会清除接口:http://192.168.148.170:8000//api/index.php 的缓存数据。

成功清除缓存返回结果如下

没有缓存返回结果如下

控制nginx缓存

proxy_no_cache

# set 指令为变量设置,proxy_no_cache参数中的值可以设置多个,但是多个值中,只要有一个是不为0的,就会通过缓存响应数据
server
{
    .
    .
    .
    location /api/ {
       set $a 0; #设置初始值
       if ( $request_uri ~ /api/noapi/(.*) ){
           set $a 1; #如果满足不缓存 设置为1
       }

       proxy_no_cache $a;//
       .
       .
       .
    }
    location ~ /clear_cache(.*) {
         allow   all;
         proxy_cache_purge imooc_cache $host$1$is_args$args;
    }
}

查看proxy_cache指令详解

到此这篇关于nginx缓存以及清除缓存的使用的文章就介绍到这了,更多相关nginx缓存及清除缓存内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: nginx缓存以及清除缓存的使用

本文链接: https://www.lsjlt.com/news/165085.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • nginx缓存以及清除缓存的使用
    目录缓存清除缓存控制nginx缓存缓存 缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器...
    99+
    2022-11-13
  • Shell脚本批量清除Nginx缓存
    前言*随着整个互联网的发展,产生了无数大大小小的网站,随之而来用户对网站UI和速度体验也在日益加强,对企业或者个人来说,赢得用户体验也就意味着赢得先机。 那今天我们在这里针对网站速度这方面来一起交流,提高网...
    99+
    2022-06-04
    缓存 批量 脚本
  • 怎么用Shell脚本批量清除Nginx缓存
    这篇文章主要介绍“怎么用Shell脚本批量清除Nginx缓存”,在日常操作中,相信很多人在怎么用Shell脚本批量清除Nginx缓存问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚本批量清除N...
    99+
    2023-06-09
  • html清除缓存的方法
    这篇文章给大家分享的是有关html清除缓存的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。html清除缓存的方法:1、在meta标签里使用“Cache-Control”属性,语法“CONTENT="...
    99+
    2023-06-14
  • javascript清除缓存的方法
    本篇内容介绍了“javascript清除缓存的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!javascript清除缓存的方法:1、在h...
    99+
    2023-06-14
  • 计算机DNS缓存列表如何清除?win7 DNS缓存的清除教程
    当计算机在对域名进行访问的时候并不是每次访问都需要向DNS服务器寻求版主的,一般当解析工作完成一次后,这个解析条目会保存在计算机的DNS缓存列表中,那你是否会遇到这种情况,当你的网站迁移服务器的时候需要对域名所指向的ip...
    99+
    2023-06-06
    win7 DNS缓存 清除 DNS 教程 计算机
  • nginx 缓存使用及配置步骤
    目录前言Nginx的web缓存Nginx缓存设置相关指令配置实例实验演示其他配置参数说明缓存配置案例展示环境准备配置步骤Nginx设置资源不缓存案例展示proxy_cache_byp...
    99+
    2022-11-13
  • iOS开发之1行代码实现缓存计算及清除缓存
    话不多说,直接撸代码 // // gzhCache.h // cache // // Created by 郭志贺 on 2020/5/27. // Copyright &cop...
    99+
    2022-06-02
    ios 清除 缓存
  • 【Python】pip安装库时存在缓存(及清除方法)
    在使用pip安装Python库时,如果之前已经下载过该库,pip会默认使用缓存来安装库,而不是重新从网络上下载。缓存文件通常存储在用户目录下的缓存文件夹中,具体位置因操作系统和Python版本而异。以...
    99+
    2023-09-02
    python pip 缓存
  • vue使用keep-alive后清除缓存的方法
    什么是keepalive? 在平常开发中,有部分组件没有必要多次初始化,这时,我们需要将组件进行持久化,使组件的状态维持不变,在下一次展示时,也不会进行重新初始化组件。 ...
    99+
    2022-11-12
  • 使用@CacheEvict清除指定下所有缓存
    目录@CacheEvict清除指定下所有缓存@Cacheable 缓存 @CachePut:缓存更新 @CacheEvict:缓存删除@Cacheable 缓存@CachePut:缓...
    99+
    2022-11-12
  • vue如何使用keep-alive后清除缓存
    小编给大家分享一下vue如何使用keep-alive后清除缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是keepalive在平常开发中,有部分组件没有必...
    99+
    2023-06-20
  • Linux中清除APT缓存及技巧是什么
    Linux中清除APT缓存及技巧是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我将在这里使用 Ubuntu 作为参考,但由于这是关于 APT 的,因此它也...
    99+
    2023-06-28
  • redis清除缓存数据的方法
    本篇文章给大家分享的是有关redis清除缓存数据的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Windows环境下使用命令行进行redi...
    99+
    2022-10-18
  • Windows下清除Redis缓存的方法
    Windows下清除Redis缓存的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!Windows下清除Redis缓存1...
    99+
    2022-10-18
  • 怎么在Nginx中配置反向代理并清除缓存
    本篇文章为大家展示了怎么在Nginx中配置反向代理并清除缓存,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一. Nginx 配置12345678910111213141516171819202122...
    99+
    2023-06-08
  • DNS的缓存信息太多Win10清除DNS缓存的两种方案
      DNS是我们上网的一个重要依据。有时个别网站无法打开就是因为DNS的缓存信息太多,这时我们就需要将其清理下。那在Win10系统里我们具体该怎么操作呢下面就让小编给大家介绍下。   查看DNS信息:   1、首先使用【...
    99+
    2023-06-15
    Win10 DNS 缓存 方案 信息
  • Android清除应用缓存的两种方法
    第一种 使用ActivityManager中的clearApplicationUserData方法,代码如下: ActivityManager am = (ActivityMa...
    99+
    2022-11-11
  • Android如何清除应用缓存的方法
    本篇内容主要讲解“Android如何清除应用缓存的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android如何清除应用缓存的方法”吧!第一种使用ActivityManager中的clea...
    99+
    2023-06-14
  • Win7 32位系统ie缓存路径如何查看以便及时清理缓存
      在网络繁盛的今日,浏览器也是遍地开花,360安全/极速浏览器、Opera浏览器、傲游、火狐、谷歌浏览器等等,其各项设置方法也不尽相同。当然也有不少用户钟情于微软的ie浏览器,那么,今日来介绍如何查看深度Win7 32...
    99+
    2023-06-08
    Win7 ie 缓存路径 32位 系统 路径
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作