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

FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
文章图片
diary_report.jpg Interesting things
我上传一张图片,返回的信息如下:

2
group:group1
path:M00/00/00/wKgMLFpLO-GAR41SAAd8hCbLY3Y765.jpg
我能正确的访问到图片

image.png 然而我删除了图片

FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
文章图片
image.png FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
文章图片
image.png 【FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存】当我再次访问该图片时,还能成功访问。

image.png
我遇到的问题就是这样子的,访问前我已经清除了浏览器的缓存。排除了浏览器缓存的问题,现在我继续排查问题。
What did you do today
然后我觉得是nginx cache的原因
  • 进入/fastdfs/cache/nginx/proxy_cache/目录下,我们可以看到缓存文件。

    FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
    文章图片
    image.png
  • 用记事本打开文件,我们可以看到proxy_cache_key

    FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
    文章图片
    image.png
  • 那proxy_cache_key为什么是这样子组成呢?我们可以打开tracker1(192.168.12.11)下的nginx.conf查看。

    FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
    文章图片
    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里面的配置。

    FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
    文章图片
    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; }

  • 那我们访问http://192.168.12.111/fastdfs/purge/group1/M00/00/00/wKgMLFpLO-GAR41SAAd8hCbLY3Y765.jpg,显示我们成功的清除缓存了!

    FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
    文章图片
    image.png
  • 美滋滋,我们继续访问之前的图片urlhttp://192.168.12.111/fastdfs/group1/M00/00/00/wKgMLFpLO-GAR41SAAd8hCbLY3Y765.jpg,发现此时已经访问不到了!

    FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
    文章图片
    image.png
Summary
根据项目需求,暂时用不上8台。我目前采用的方案是虚拟机+keepalived+nginx,也可以采用lvs+keepalived+nginx方案。所以我优化后的拓扑图附上。

FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存
文章图片
image.png

    推荐阅读