nginx-cache 总结

最近公司有个 purge(根据用户请求创建、删除缓存目录)的需求,基于 nginx 上做二次开发,但是之前一直在搞 “nginx-rtmp” 直播这块,在缓存方面完全就是小白。不过经过一段时间调研以后,结合代码、日志看了一些牛人针对 nginx cache 做的总结,感觉现在有点入门了,但涉及的东西还是比较多的,所以想着把这些博客的链接整合一下,以后好复习。同时希望帮助那些想搞 nginx 和 cache 的朋友快速找到解决问题的资料。


清除缓存设计与实现

nginx-purge 按目录清除缓存 设计思想很值得借鉴,因为第三方模块仅实现了清除缓存文件,不包括目录

nginx-purge 第三方模块代码 加载模块后按作者给的配置示例进行配置,结合 wget 和 curl 命令就可以测试删除单个缓存文件了,下面给出了配置示例。


上游服务器配置:
server {
   listen       80;
   server_name  localhost;                                                                                          
   location ~ \.js {                                                                                
        expires 1h;                                                                                 
        root js/;                                                                                    
    }
}                                 
代理服务器配置:
proxy_cache_path   /tmp/cache/127.0.0.1/ levels=1:2  keys_zone=127.0.0.1:10m;
 server {
        listen 8000;
        location /test {
            proxy_pass         http://127.0.0.1/jquery.js;
            proxy_cache        $host;
            proxy_cache_key    $uri$is_args$args;
            proxy_cache_purge  PURGE from 127.0.0.1;
            expires            30d;
        }   
}   
purge功能测试:
/* 给代理服务发送GET请求,代理服务器向上游服务器获取内容缓至本地磁盘 */
wget -d -S -e http-proxy=127.0.0.1:8000 http://127.0.0.1/test -O /dev/null

/* 通过 purge 请求删除代理服务器缓存的文件 */ 
curl -v -X PURGE "http://127.0.0.1:8000/test"


upstream 系列

因为cache的实现要基于 proxy 和 upstream 这两个模块,需求和业务又是相辅相成的,为了让自己不偏离需求、心里有点底,不得不恶补一下 upsteram机制的实现,的确很复杂,但是中间有一些设计思想非常值得借鉴,例如:上下游的交互、 http header 的处理 设计的非常巧妙,代码很简洁.

cache 系列

这哥们在 cache 界算的上资深,站在更高的角度让你认识 cache 系统,更多的是思想上的碰撞,不局限于代码。从提出问题过度到业务场景,再过度到实现细节,读起来没那么乏味,我很期待作者的后续更新.

nginx-cache 系列

  • nginx-cache 代码分析(一)针对后端静态文件的缓存,配置和 ngx_http_proxy_module 相关,需要使用 upstream 机制来向后端获取内容并缓存成文件,这个分析比较重要,代码实现和purge需求相关

  • nginx-cache 代码分析(二) 针对静态文件的缓存,配置和 ngx_http_core_module 相关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值