注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

永福的技术博客

Linux运维

 
 
 

日志

 
 

ngx_cache_purge 使用方法及优劣  

2014-12-10 16:55:27|  分类: 软件编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

商业版的nginx自带cache和cache清理功能, 但是我没钱买商业版(proxy_cache_purge指令), 所以只能用开源的ngx_cache_purge.
从ngx_cache_purge命名来看, 其功能就是清理缓存 . 我主要用来作为图片缓存的清理工具.

安装和基本配置

安装

ngx_cache_purge的安装和其他的nginx模块一样, 都是需要在nginx编译时一起编译进nginx中.

配置

基本配置
http {
    proxy_cache_path  /tmp/cache  keys_zone=tmpcache:10m;
 
    server {
        location / {
            proxy_pass         http://127.0.0.1:8000;
            proxy_cache        tmpcache;
            proxy_cache_key    $uri$is_args$args;
            proxy_cache_purge  PURGE from 127.0.0.1;
        }
    }
}
我的配置
http
{
    proxy_cache_path  /tmp/cache  keys_zone=tmpcache:10m;
 
    server
    {
       listen       80;
       server_name  img1.example.com;
 
       location / {
              proxy_cache tmpcache;
              # b. 在上游(如本例的127.0.0.1:8080)设置了expires后, 此设置将失效.
              # 若上游没有设置expires, 此设置将生效
              proxy_cache_valid 200 304 60d;  
              proxy_cache_valid 301 302 60d;  
              proxy_cache_valid any 1m;
              proxy_cache_key $host$uri$is_args$args;
 
              proxy_set_header Host $host;
              proxy_set_header X-Forwarded-For  $remote_addr;
              proxy_pass http://127.0.0.1:8080;
 
              # c. 设置用户浏览器端的过期时间
              expires 100d;  
       }
 
       location ~ /purge(/.*) {
              allow       127.0.0.1;
              deny        all;
              proxy_cache_purge   tmpcache   $host$1$is_args$args;
       }
    }
 
    server
    {
       listen       127.0.0.1:8080;
       server_name  img1.example.com;
 
       root   /data/www/example_site;
 
       # a.此时间过期设置对cache文件生效
       expires 30d;  
    }
}

ngx_cache_purge 优劣

优点

开源、免费、能够满足我的基本需求、开发者还在持续维护https://github.com/FRiCKLE/ngx_cache_purge

缺点

  1. 不能按正则、通配符、目录清理缓存。
  2. 当访问的是一个错误页面时,也会生成一个缓存文件, 如果不主动清理, 将永久存在。
  3. 不能按照proxy_cache_valid中设置的时间,自动将缓存文件清理。

#: 文中若有不当之处,欢迎指出和交流.
  评论这张
 
阅读(716)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018