nginx缓存原理及配置
272 次浏览
发表于 2020-09-10 09:56
转载

1.nginx缓存原理及配置

nginx的http_proxy模块,可以 实现类似于 squid的 缓存功能。

基于nginx静态缓存的解决方案:
这里写图片描述

1.1 nginx cache的基本配置

    proxy_cache_path /data/nginx/cache_item levels=1:1:2  keys_zone=cache_item:10m max_size=10g inactive=60m;  
    server {  
               location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {  
              proxy_set_header Host  $host;
            proxy_set_header X-Forwarded-For  $remote_addr;
            proxy_pass http://127.0.0.1:8080;
                   proxy_cache cache_item;  
                    proxy_cache_key $host$uri$is_args$args;#以全路径md5值做做为Key
                    proxy_cache_valid 200 304 12h; #对不同的HTTP状态码设置不同的缓存时间
                    expires 7d; #总体缓存时间
           }  
    }  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

上述参数说明如下:

父元素名称描述
httpproxy_cache_path指定缓存区的根路径
levels缓存目录级最高三层,每层1-2个字符表示。如1:1:2三层。
keys_zone缓存块名称及内存块大小。如cache_item:500m表示声明一个名为cache_item大小为500m。超出大小 后最早的数据将被清除。
max_size缓存区硬盘的 最大值。超出闲置数据将被清除
inactive最长闲置时间 如10d 如果一个 数据被闲置10天则将被清除
locationproxy_cache指定缓存区,对应keys_zone中设定的值
proxy_cache_key通过参数拼装参数key如:$host$uri$is_args$args则会以全部领md5值做为key
proxy_cache_valid对不同的状态码设置缓存有效期

1.2 缓存的清除

该功能 可以采用第三方模块ngx_cache_purge实现:

为nginx添加ngx_cache_purge模块

#下载ngx_cache_purge 模块包 ,这⾥nginx 版本为1.6.2 purge 对应2.0版

wget http://labs.frickle.com/files/ngx_cache_purge-2.0.tar.gz

#查看已安装模块

./sbin/nginx -V

#进⼊nginx安装包⽬录 重新安装 --add-module为模块解压的全路径

./configure --prefix=/root/svr/nginx --with-http_stub_status_module --with-http_ssl_module --
add-module=/root/svr/nginx/models/ngx_cache_purge-2.0

#重新编译

make

#拷⻉ 安装⽬录/objs/nginx ⽂件⽤于替换原nginx ⽂件
#检测查看安装是否成功

nginx -t
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

清除配置:

location ~ /purge(/.*) {
   #允许访问的IP
   allow 127.0.0.1;
   allow 192.168.0.193;
   #禁⽌访问的IP
   deny all;
   #配置清除指定缓存区和路径(与proxy_cache_key⼀⾄)
   proxy_cache_purge cache_item $host$1$is_args$args;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

1.3 测试

1、首次访问:
http://localhost8080/demo/images/logo.jpg
2、缓存清理
http://localhost8080/purge/demo/images/logo.jpg

如果您觉得不错,就打赏支持一下吧〜
已有 0 人进行打赏
点击标签,发现更多精彩
发表评论
发表者

守望

彪悍的人生,不需要解释

  • 89

    文章

  • 18

    关注

  • 12

    粉丝

活动推荐
版权所有©F5 Networks,Inc.保留所有权利。京ICP备16013763号-5