是的,我说实话,我不知道清漆vcl,我可以找出一些基本的东西,但我不太了解它,这显然是为什么我&#39 ;我有问题。
我尝试通过http请求设置缓存禁止,但请求无法通过DNS进入,而是通过清漆盒的IP地址进入,否则我无法进行确保每个清漆盒缓存都会刷新目标;这是因为我们在ELB后面有几个清漆盒,因此您无法保证禁止请求不会两次进入同一个盒子,因此通过IP进行此操作。
我使用它来确保只允许允许的IP禁止,但这不起作用:
sub vcl_hit {
if (req.request == "BAN") {
ban("req.url ==" + req.url);
error 200 "Purged";
}
}
我真的不知道该怎么做才能让这个工作起来我已经看了,但我发现的大部分教程似乎都是针对完整的URL而不仅仅是ip + pattern_to_purge
答案 0 :(得分:2)
从您的配置示例中我希望您使用清漆3 您可以添加允许执行清除的ips列表,如下所示
acl ban_allowed_ip {
"127.0.0.1";
"127.0.0.2";
}
在 if(req.request ==“BAN”)中添加以下内容
if (!client.ip ~ ban_allowed_ip) {
error 405 "Not allowed.";
}
答案 1 :(得分:0)
答案是使用:
if (req.request == "BAN") {
if (req.http.X-Debug != "True") {
error 405 "Not allowed.";
}
ban("obj.http.x-url ~ " + req.url);
error 200 "ban added";
}
虽然无论缓存中的项目是否存在,这都会返回200,但它会添加禁令。