nginx配置文件不使用缓存的方法

 更新时间:2024年11月04日 09:58:02   作者:mob64ca13f96cda  
使用Nginx作为Web缓存服务器,能有效减少数据传输、节省网络流量、加快响应速度、减轻服务器压力、提高服务端可用性,本文就来介绍一下nginx配置文件不使用缓存的方法,感兴趣的可以了解一下

前言

使用缓存的优点在于减少数据传输,节省网络流量,加快响应速度;减轻服务器压力;提供服务端的高可用性;缺点在于数据的不一致问题;增加成本
Nginx作为Web缓存服务器,介于客户端和应用服务器之间,当用户通过浏览器访问一个URL时,web缓存服务器会去应用服务器获取要展示给用户的内容,将内容缓存到自己的服务器上,当下一次请求到来时,如果访问的是同一个URL,web缓存服务器就会直接将之前缓存的内容返回给客户端

1. web缓存服务

1.1 原理

Nginx的web缓存服务主要是使用ngx_http_proxy_module模块,其基于Proxy Store来实现,其原理是把URL及相关组合当做Key,在使用MD5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在该目录中。它可以支持任意URL连接,同时也支持404/301/302这样的非200状态码。Nginx即可以支持对指定URL或者状态码设置过期时间,也可以使用purge命令来手动清除指定URL的缓存

1.2 指令

1.2.1 proxy_cache_path

语法:

proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time][max_size=size];
  • path:缓存路径地址
  • levels: 指定该缓存空间对应的目录,最多可以设置3层,每层取值为1|2(MD5加密后的密文从后往前取值1到2个字符)
  • keys_zone:用来为这个缓存区设置名称和指定大小
  • inactive:指定缓存的数据多次时间未被访问就将被删除
  • max_size:设置最大缓存空间,如果缓存空间存满,默认会覆盖缓存时间最长的资源

实例:

http {
proxy_cache_path /usr/local/proxy_cache keys_zone=cz:200m levels=1:2:1 inactive=1d max_size=20g;
}

1.2.2 proxy_cache
开启或关闭代理缓存,如果是开启则自定使用哪个缓存区来进行缓存

1.2.3 proxy_cache_key
设置web缓存的key值,Nginx会根据key值MD5哈希存缓存

1.2.4 proxy_cache_valid
对不同返回状态码的URL设置不同的缓存时间

1.2.5 proxy_cache_min_uses
设置资源被访问多少次后被缓存

1.2.6 proxy_cache_methods
设置缓存哪些HTTP方法

2. 缓存案例

在http块中设置

proxy_cache_path /usr/local/proxy_cache keys_zone=cz:200m levels=1:2:1 inactive=1d max_size=20g;
server {
     listen   12305;
      location ~* .\.(png|jpg|css|html|js)$ {
    proxy_cache cz;
    proxy_cache_key $scheme$proxy_host$request_uri;
    proxy_cache_min_uses 1;
    proxy_cache_valid 200 1d;
    proxy_cache_valid any 1m;
    add_header nginx-cache "$upstream_cache_status";
    proxy_pass http://172.18.25.50:12306;
      }
  }
  server {
     listen   12306;
      location ^~ /bdosp {
      alias  /mnt/disk1/home/ZLQ_YL/myUI/bdops_ui/bdopsDist/bdosp;
      index  index.html index.htm;
      }
  }

3. 缓存的清除

3.1 删除对应的缓存目录

rm -rf /usr/local/proxy_cache

3.2 使用第三方扩展模块ngx_cache_purge,并使用proxy_cache_purge指令

4. 设置资源不缓存

4.1 proxy_no_cache

定义不将数据进行缓存的条件

示例:

proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;

4.2 proxy_cache_bypass

设置不从缓存中获取数据的条件

示例:

proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;

$cookie_nocache指当前请求的cookie中键的名称为nocache对应的值
$arg_nocache和$arg_comment指的是当前请求的参数中属性名为nocache和comment对应的属性值
至少有一个不为空且不等于0,则条件满足成立

4.3 设置不缓存资源的配置方案

server{
listen 8080;
server_name localhost;
location / {
 if ($request_uri ~ /.*\.js$){
 set $nocache 1;
 }
proxy_no_cache $nocache $cookie_nocache $arg_nocache $arg_comment;
proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
 }
 }

到此这篇关于nginx配置文件不使用缓存的方法的文章就介绍到这了,更多相关nginx 文件不使用缓存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解 Nginx代理功能与负载均衡

    详解 Nginx代理功能与负载均衡

    本篇文章主要介绍了详解 Nginx代理功能与负载均衡,先描述一些关于代理功能的配置,再说明负载均衡详细,有兴趣的可以了解一下。
    2017-02-02
  • nginx中的proxy_redirect的使用案例详解

    nginx中的proxy_redirect的使用案例详解

    proxy_redirect 该指令用来修改被代理服务器返回的响应头中的Location头域和“refresh”头域,这篇文章主要介绍了nginx中的proxy_redirect的使用案例详解,需要的朋友可以参考下
    2024-06-06
  • nginx+php的新基础镜像制作全过程

    nginx+php的新基础镜像制作全过程

    这篇文章主要介绍了基于alpine基础镜像,构建含nginx、php服务的新基础镜像的过程,文中通过代码示例和图文结合的方式介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-03-03
  • nginx控制连接数及访问速率的实现

    nginx控制连接数及访问速率的实现

    本文主要介绍了Nginx中ngx_http_limit_conn_module和ngx_http_limit_req_module模块的使用,用于控制连接数和请求速率,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • 详解如何在Nginx中设置文件上传大小限制

    详解如何在Nginx中设置文件上传大小限制

    在使用 Nginx 进行文件上传时,我们可能需要对上传文件的大小进行限制,以防止用户上传过大的文件导致服务器负载过高,本文将介绍如何在 Nginx 中设置文件上传大小限制,需要的朋友可以参考下
    2023-07-07
  • nginx七层负载均衡配置详解

    nginx七层负载均衡配置详解

    本文主要介绍了nginx七层负载均衡配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Nginx+Windows搭建域名访问环境的操作方法

    Nginx+Windows搭建域名访问环境的操作方法

    这篇文章主要介绍了Nginx搭建域名访问环境,包括nginx配置文件的相关介绍及对nginx配置文件的分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • nginx反向代理二级域名绑定方法及注意事项

    nginx反向代理二级域名绑定方法及注意事项

    本文介绍了利用nginx实现多域名和多站点的绑定的方法及相关注意事项,需要的朋友可以参考下
    2018-04-04
  • Nginx离线安装的保姆级教程

    Nginx离线安装的保姆级教程

    为了确保gcc-c++和Nginx的正确安装,建议使用yum工具在线下载rpm包,避免手动下载安装时出现依赖缺失的问题,本文就来介绍一下如何离线安装,感兴趣的可以了解一下
    2024-09-09
  • Nginx和Apache几种防盗链配置方法实例

    Nginx和Apache几种防盗链配置方法实例

    这篇文章主要介绍了Nginx和Apache几种防盗链配置方法实例,本文使用判断来路的方法实现防盗链,分别给出Nginx和Apache配置实例,需要的朋友可以参考下
    2015-02-02

最新评论