【问题标题】:Cannot exclude robot.txt from varnish cache无法从清漆缓存中排除robot.txt
【发布时间】:2018-01-05 06:24:06
【问题描述】:

我尝试通过在 default.vcl 中使用以下代码行来排除 robots.txt 形式的清漆缓存

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

现在开发工具中的 Network 选项卡,它显示 Age: 0 和 X-Cache:MISS。但是,由于某种原因,清漆不会将文件排除在缓存之外。我什至从它的位置删除了文件。但它仍然在加载 url https://www.example.com/robots.txt

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

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 消息,但仍然没有运气。

谁能帮帮我?

【问题讨论】:

  • 如果年龄为 0 并且是 MISS,则不清楚您所说的“被排除在缓存之外”是什么意思,因为这似乎正是正在发生的事情。

标签: varnish varnish-vcl varnish-4


【解决方案1】:
  1. “我什至从它的位置删除了文件。但它仍在加载 url https://www.example.com/robots.txt”——可能是您的浏览器正在缓存它。
  2. 向 varnish 发送 PURGE 请求只会从缓存中删除对象,而不是从后端删除,因此如果您从 varnish 中清除某些内容,然后向其发送 GET 请求,它肯定会为您提供对象。李>
  3. 如果您希望它永远丢失,则需要将其从后端中删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2023-03-25
    • 2022-11-28
    • 2013-01-09
    • 1970-01-01
    • 2012-11-12
    相关资源
    最近更新 更多