FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存

Interesting things

我上传一张图片,返回的信息如下:

2 group:group1 path:M00/00/00/wKgMLFpLO-GAR41SAAd8hCbLY3Y765.jpg

我能正确的访问到图片

image.png

然而我删除了图片

image.png

image.png

当我再次访问该图片时,还能成功访问。

image.png

我遇到的问题就是这样子的,访问前我已经清除了浏览器的缓存。排除了浏览器缓存的问题,现在我继续排查问题。

What did you do today

然后我觉得是nginx cache的原因

  • 进入/fastdfs/cache/nginx/proxy_cache/目录下,我们可以看到缓存文件。

image.png

  • 用记事本打开文件,我们可以看到proxy_cache_key

image.png

  • 那proxy_cache_key为什么是这样子组成呢?我们可以打开tracker1(192.168.12.11)下的nginx.conf查看。

image.png

  • 我们设置的proxy_cache_key,以URI,参数组合成web缓存的key,Nginx根据key值hash,存储缓存内容于二级缓存目录中。也就是上文的/fastdfs/cache/nginx/proxy_cache/d/90

proxy_cache_key $uri$is_args$args;

  • 我们怎么清除nginx的缓存里,我们可以查看nginx.conf里面的配置。

image.png

  • 也就是说我们通过访问/purge/proxy_cache_key就能清除缓存。
        location ~/purge(/.*) {
                allow 127.0.0.1;
                allow 192.168.12.0/24;
                deny all;
                proxy_cache_purge http-cache $1$is_args$args;
                error_page 405 =200 /purge$1;
        }

image.png

image.png


Summary

根据项目需求,暂时用不上8台。我目前采用的方案是虚拟机+keepalived+nginx,也可以采用lvs+keepalived+nginx方案。所以我优化后的拓扑图附上。

image.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏王磊的博客

iBatis for Net 代码生成器(CodeHelper)附下载地址(已经升级为V 1.1)

CodeHelper是一款可以自己定义模板和生成内容的代码生成器,目前只支持MsSql数据库,这款代码生成器的初衷也只是为了生成MyBatis.net框架的配置...

38360
来自专栏架构师之旅

Git基础和规范-协同开发

关于版本控制 什么是版本控制: 官方说法:版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,你可以对任何类型的文件进行版本控制。 ...

31750
来自专栏PhpZendo

深入浅出依赖注入

或许您已经在项目中已经使用过「依赖注入」,只不过由于某些原因,致使您对它的印象不是特别深刻。

10910
来自专栏MoeLove

Linux上源码编译MongoDB

MongoDB的官网上是有已经编译好的二进制包的,这里选择clone MongoDB在github上的仓库

15530
来自专栏张善友的专栏

MSDTC 故障排除

大多数 K2 blackpearl  运行时操作都需要 Microsoft 分布式事务处理协调器 (MSDTC) 支持,以确保操作事务性一致。如果没有 MSDT...

29260
来自专栏Golang语言社区

从零开始实现RPC框架 - RPC原理及实现

RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一...

21930
来自专栏北京马哥教育

Python开源项目介绍:用zmail简单地发邮件

转载自:Python中文社区 ID:python-china 发送邮件是个很简单的需求,但是在实际的使用中依然碰到了很多坑,因此创建了zmail这个项目...

29660
来自专栏智能大石头

[netcore]CentOS安装使用.netcore极简教程(免费提供学习服务器) 新生命团队netcore服务器免费开放计划

本文目标是指引从未使用过Linux的.Neter,如何在CentOS7上安装.Net Core环境,以及部署.Net Core应用。

21700
来自专栏Seebug漏洞平台

从 CVE-2018-8495 看 PC 端 url scheme 的安全问题

本文受 CVE-2018-8495 漏洞的启发,以学习的目的,针对 PC 端 url scheme 的安全问题进行了分析研究。

14310
来自专栏潇涧技术专栏

Build Android Source Code on Mac

趁着国庆长假,抽出些时间来记录下最近倒腾的一些内容,第一个需要记录的自然是Android源码编译的流程。上班第一天就干了一件事,编译Android 6.0源码,...

12630

扫码关注云+社区

领取腾讯云代金券