如何删除单个nginxcaching文件?

当访问http://example.com/其空白,但与http://example.com/index.php工作良好,我需要删除http://example.com/ nginxcaching文件如何做到这一点? 在这里我的nginxcachingconf。

fastcgi_cache_path /backup/cache levels=1:2 keys_zone=my-cache:1000m inactive=1000m; fastcgi_temp_path /backup/cache/tmp 1 2; fastcgi_cache_key "$scheme://$host$request_uri"; 

如何获取/ backup / cache文件夹中的caching文件名?

一种方法,例如,但相当灵活的多function

将此行添加到nginx.conf …

 proxy_cache_bypass $http_x_update; 

…你可以随时更新任何uricaching与简单的HTTP请求与“魔术”头。 例如

 curl -s -o /dev/null -H "X-Update: 1" mydomain.com 

要么

 curl -s -o /dev/null -H "X-Update: 1" mydomain.com/some/long/url/ 

为了安全和满足偏执:D你可以改变标题名称为任何blablabla,例如

 proxy_cache_bypass $http_x_gangnamstyle; #proxy_cache_bypass $http_x_mycatsnickname; #proxy_cache_bypass $http_x_b2ca678b4c936f905fb82f2733f5297f; 

 curl -s -o /dev/null -H "X-GangnamStyle: 1" mydomain.com curl -s -o /dev/null -H "X-mycatsnickname: 1" mydomain.com curl -s -o /dev/null -H "X-b2ca678b4c936f905fb82f2733f5297f: 1" mydomain.com 

你必须在你的configuration中有一个地方这一行,

 fastcgi_cache_key *key*; 

您需要从那里find相应URL的密钥,然后计算该密钥string的md5。

现在假设md5的值是xm ***** p3w,那么你的URL的caching文件是/ backup / cache / w / p3 / xm ***** p3w。 现在就删除它,无论你希望如何。

另一种自动化的方式,如果你有你的nginx nginx_cache_purge模块,

 fastcgi_cache_purge CACHEREGION $cache_key; 

其中,CACHEREGION是由fastcgi_cache_path指令定义的caching区域,$ cache_key是fastcgi_cache_key指令的值。

注意:位置块中允许使用fastcgi_cache_purge指令。