Nginx自建CDN在《智能解析 + Nginx反向代理,自建CDN加速节点》已经介绍过,有兴趣的童鞋可参考,不过可以在这篇文章基础上继续完善,比如添加ngx_cache_purge模块来清除缓存。

编译ngx_cache_purge模块

清理Nginx缓存需要ngx_cache_purge模块帮助,可输入命令nginx -V查看已经编译的模块,如果没有ngx_cache_purge说明模块没有安装,则需要重新编译一下Nginx

模块下载地址为ngx_cache_purge-2.3.tar.gz,如何编译Nginx可参考:《Nginx编译安装Fancy Index模块,实现漂亮的索引目录》

配置ngx_cache_purge

在server段内加入下面的配置,并重载Nginx,在这里xiaoz被坑了很久,下面的cache_one请与keys_zone定义的值保持一致,否则nginx将无法启动。

location ~ /purge(/.*) {
allow all;
proxy_cache_purge cache_one $proxy_host$1$is_args$args;
error_page 405 =200 /purge$1;
}

如果该文件存在缓存,则会提示如下截图。若不存在缓存,则返回404,若无论什么情况均返回404,可能配置没成功。

Wordpress自动刷新缓存

小z博客使用的Wordpress程序,如果启用CDN后页面被缓存,用户提交评论后无法马上显示出来,可以使用Ajax异步请求ngx_cache_purge接口,当用户提交评论的时候则清除该页面缓存。只需要下面的这段js添加到footer.php即可。

<script>$(document).ready(function(){$("#submit").click(function(){var uri = "https://www.xiaoz.me/purge" + window.location.pathname;$.get(uri,function(data,status){return true;});});});</script>

代码中的地址请改成您自己的域名,以下是小z博客CDN完整配置,仅供参考:

proxy_cache_path /data/caches levels=1:2 keys_zone=xiaozcdn:100m inactive=30m max_size=100m;
server{listen 443 ssl http2;listen [::]:443 ssl http2;ssl on;ssl_certificate /xxx/www_xiaoz_me.crt;ssl_certificate_key /xxx/www_xiaoz_me.key;ssl_session_timeout 1d;ssl_session_cache shared:SSL:50m;ssl_session_tickets off;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';ssl_prefer_server_ciphers on;ssl_stapling on;ssl_stapling_verify on;server_name     www.xiaoz.me;charset utf-8,gbk;#删除缓存location ~ /dcache(/.*) {allow all;proxy_cache_purge xiaozcdn $proxy_host$1$is_args$args;error_page 405 =200 /purge$1;}location / {#proxy_set_header Accept-Encoding "";proxy_pass https://www.xiaoz.me;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_cache xiaozcdn;proxy_cache_valid  200 304  30m;proxy_cache_valid  301 24h;proxy_cache_valid  500 502 503 504 0s;proxy_cache_valid any 1s;#达到第几次被缓存?proxy_cache_min_uses 1;expires 12h;proxy_cache_key    $uri$is_args$args;}
}
server
{listen 80;server_name www.xiaoz.me;rewrite ^(.*) https://www.xiaoz.me$1 permanent;
}

总结

Nginx应用十分广泛,功能也非常强大,但是参数繁多,xiaoz所了解的不过九牛一毛。上述方案已经应用到小z博客中,具体效果有待观察和改进,若有问题请反馈。

Nginx自建CDN以及ngx_cache_purge清除缓存相关推荐

  1. Nginx自建CDN加速节点 实现DNS智能解析网站项目

    如今,网站项目越来越多的会使用CDN加速,如果需要便捷一点的可以直接用第三方提供的CDN加速服务,比如百度CDN.七牛.又拍云.腾讯云.阿里云等等服务商都有提供这类服务.但是前提条件是需要一定的成本, ...

  2. Nginx平滑升级,并增加清除缓存模块

    平滑升级nginx0.8.46到nginx1.0,并增加清除缓存模块 ×××: wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.g ...

  3. Nginx的Web缓存服务及清除缓存

    这一篇记录一下Nginx作为Web服务器缓存,减少对应用服务器请求次数 ,各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟.多谢! Nginx作为Web缓存 ...

  4. CDN缓存系统——varnish之清除缓存

    目录 一.varnish进程的工作模式 二.缓存 三.手动清理缓存 四.图形化清理缓存 1.安装bansys安装包(帮助清除varnish内存) 2.修改apache使用的端口 3.修改varnish ...

  5. 缓存系列之二:CDN与其他层面缓存

    缓存系列之二:CDN与其他层面缓存 一:内容分发网络(Content Delivery Network),通过将服务内容分发至全网加速节点,利用全球调度系统使用户能够就近获取,有效降低访问延迟,提升服 ...

  6. 极速自建CDN系统方案-SharkCDN

    资源文件国外服务器上,国内访问很慢,如果使用国内某些CDN需要提供北岸,并且价格不菲,许多企业拥有自建CDN的需求,SharkCDN是一套快速部署CDN加速的工具,它针对专门提供CDN加速服务的企业或 ...

  7. 自建CDN防御DDoS(2):架构设计、成本与部署细节

    在本系列的第一篇文章中,我们介绍了我们客服系统遇到DDoS攻击的情况,以及我们为什么决定采用自建CDN的方式来解决这个问题的原因. \ 下面,我们将介绍自建CDN的具体建设规划,主要从以下几个方面进行 ...

  8. 自建CDN防御DDoS(3):架构的后续改进

    http://www.infoq.com/cn/articles/anti-ddos-cdn-3 在本系列的第一篇文章中,我们介绍了我们客服系统遇到DDoS***的情况,以及我们为什么决定采用自建CD ...

  9. 将nginx同时作为负载均衡和Web缓存服务器

    Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...

最新文章

  1. tf.concat()详解
  2. linux内核 task_struct 中自旋锁的应用
  3. [Flashback]开启数据库闪回数据库功能
  4. SAP Cloud Platform certificate trust下载和business role创建
  5. 【算法】逆波兰式(后缀表达式)的计算 中缀表达式转后缀表达式(逆波兰式)
  6. C++安全方向(三)3.3 openssl的MD5接口调用演示
  7. MySQL表中插入中文数据时出错
  8. Oracle Sys和system用户区别
  9. IDEA 常用设置 与 常用操作(三)
  10. c语言11章谭浩强,谭浩强 C语言 第11章 结构体.ppt
  11. 东芝2303am维护清零_东芝打印机怎么清零
  12. NMS非极大值抑制算法原理
  13. 线程生命周期(状态)
  14. misc fiction 科幻小说中的五大鸡肋发明
  15. Linux命令ln -snf给文件创建软链接和硬链接
  16. MBE清新风格毕业答辩PPT模板
  17. 自己动手写CPU(11)——加载存储指令说明
  18. 说说java中extends与implements的区别
  19. OTM区块链应用离我们的生活有多近?
  20. avg是java关键字_java 关键字练习

热门文章

  1. Python基础下载安装卸载
  2. Java学习之SoapUI报文发送和解析
  3. SpringCloud 微信小程序授权登录 获取openId SessionKey【SpringCloud系列13】
  4. Cisco ×××实例配置方案
  5. vs+qt实现简单桌面精灵
  6. LDA线性判别分析原理
  7. 网易雷火游戏功能测试面试记录
  8. 十五、类加载器、反射
  9. 信息系统项目时间管理案例之关键路径案例
  10. 花几千块钱买了电脑,别老只上QQ啊,校内啊,这些手机就能干的事 来源: 长华不挂科的日志