无法从varnish缓存中排除robot.txt

时间:2017-07-29 06:25:32

标签: varnish varnish-vcl varnish-4

我尝试使用default.vcl中的以下代码行排除robots.txt form varnish cache

if(req.url ~ "^/robots\.txt$") {
   return(pass);
}

现在开发工具中的网络选项卡,它显示年龄:0和X-Cache:MISS。但是,由于某些原因,清漆不会排除缓存文件。我甚至从它的位置删除了该文件。但仍加载网址https://www.example.com/robots.txt

我还使用以下命令清除了varnish缓存

curl -X PURGE www.example.com/robots.txt

varnishadm "ban req.http.host == www.example.com && req.url ~ ^/robots.txt"

varnishadm "ban req.http.host ~ www.example.com && req.url ~ ^/robots.txt"

它显示了200 Purged消息,但仍然没有运气。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

  1. "我甚至从其位置删除了该文件。但仍然加载了网址https://www.example.com/robots.txt" - 可能是您的浏览器正在缓存它。
  2. 将PURGE请求发送到varnish只会从缓存中删除对象,而不是从后端删除,因此如果您从varnish中清除某些内容然后向其发送GET请求,它肯定会将该对象提供给您。
  3. 如果您希望它永远丢失,您需要将其从后端删除。