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;
}
-
那我们访问http://192.168.12.111/fastdfs/purge/group1/M00/00/00/wKgMLFpLO-GAR41SAAd8hCbLY3Y765.jpg,显示我们成功的清除缓存了!
image.png
-
美滋滋,我们继续访问之前的图片urlhttp://192.168.12.111/fastdfs/group1/M00/00/00/wKgMLFpLO-GAR41SAAd8hCbLY3Y765.jpg,发现此时已经访问不到了!
image.png
Summary
根据项目需求,暂时用不上8台。我目前采用的方案是虚拟机+keepalived+nginx,也可以采用lvs+keepalived+nginx方案。所以我优化后的拓扑图附上。
image.png
网友评论