我正在使用遗留代码库来构建一个Web应用程序,其架构称为“基于小部件”。它基本上是缓存的数据库结果集,将在应用程序的不同部分的几个“小部件”上呈现。因此,当他们更新或创建新记录时,他们会使用一组规则来了解哪些缓存无效,以便显示所述记录。
通过阅读清漆用例示例,看起来它不是为缓存数据库记录(如memcache或apc)而构建的,而是 webserver的响应本身(AKA,整个html页面)。 / p>
如果我的上一个陈述是正确的,我怎样才能使显示新记录的html页面的varnish cache的缓存注册表无效(基本上,挑选什么无效)?
答案 0 :(得分:1)
您可以清除缓存的内容。文档的这一部分Purging and Banning
对此进行了解释基本上你在VCL文件中添加了这样的东西
acl purge {
"localhost";
"192.168.55.0"/24;
}
sub vcl_recv {
# allow PURGE from localhost and 192.168.55...
if (req.method == "PURGE") {
if (!client.ip ~ purge) {
return(synth(405,"Not allowed."));
}
return (purge);
}
}
重新启动服务器后,您可以使用PURGE方法清除页面。
例如,如果您有以下网址:http://yourhost.com/widget/a, 您将清除请求发送到同一地址以将其从缓存中删除。
您可以使用命令行实用程序curl,如下所示,但允许发送自定义HTTP方法的任何工具/库都可以使用:
curl -X PURGE http://yourhost.com/widget/a