Curl 无法使用清漆上的卷曲进行清除

Curl 无法使用清漆上的卷曲进行清除,curl,varnish,varnish-vcl,Curl,Varnish,Varnish Vcl,我无法使用CURL清除清漆中的对象 CURL命令: curl-X PURGE localhost/public/stylesheets/main.css-v curl命令返回200 OK响应。对象未被清除 config file in VARNISH : default.vcl sub vcl_miss { if (req.request == "PURGE") { purge; error 404 "Not in cache."; } if (req.http.u

我无法使用CURL清除清漆中的对象

CURL命令: curl-X PURGE localhost/public/stylesheets/main.css-v curl命令返回200 OK响应。对象未被清除

config file in VARNISH : default.vcl
sub vcl_miss {
  if (req.request == "PURGE") {
    purge;
    error 404 "Not in cache.";
  }
   if (req.http.user-agent ~ "spider") {
    error 503 "Not presently in cache";
    }
return (fetch);
}

sub vcl_hit {
  if (req.request == "PURGE") {
    purge;
    error 200 "Purged.";
  }
     return (deliver);
}


sub vlc.recv{
if (req.request == "PURGE") {
    if (!client.ip ~ purge) {
      error 405 "Not allowed.";
    }
    return(lookup);
  }
}

请提供此方面的帮助,在vcl_recv上启用“清除”请求,然后直接在recv上执行清除,忽略它是否存在,这与清除过程无关

if (client.ip ~ purge && req.request == "PURGE" ){ purge; error 999; return(error)}
if (req.request != "GET" &&
  req.request != "HEAD" &&
  req.request != "PUT" &&
  req.request != "POST" &&
  req.request != "TRACE" &&
  req.request != "OPTIONS" &&
  req.request != "DELETE") {
    /* Non-RFC2616 or CONNECT which is weird. */
    set req.http.xpass="PASS_header";
    return (pass);
}
很多时候varnish没有收到真正的请求者IP(来自提供商的一些不透明代理,如amazon负载平衡器),所以忘记client.IP ACL,在req.http.x-forwarded-for上执行正则表达式以匹配允许清除的IP。。。这是不安全的。。。但这可能是唯一简单化的选择


对不起,英语很差

你能尝试将
acl purge{“localhost”;“127.0.0.1”}
添加到你的vcl文件中并测试它是否有效吗?sub“vlc.recv{”至少有两个我能看到的拼写错误。如果这不是复制粘贴错误,并且这实际上是你的vcl的外观,你需要将其更改为“sub vcl_recv{”