gpt4 book ai didi

varnish - 如何让 Varnish 清除 URL 的所有变体?

转载 作者:行者123 更新时间:2023-12-02 14:55:05 25 4
gpt4 key购买 nike

Varnish 2.1:我正在尝试使用 http PURGE 让 Varnish 更新一个缓存的 URL。

在测试时,我会得到看起来很奇怪的结果,直到我在文档中读到这一点:“但是,如果缓存中同一 URL 有多个变体,则只会清除匹配的变体。要清除 gzip 变体,请执行以下操作:同一页面的请求必须如下所示:“

现在如果我执行这两个命令:

curl -I http://example.com/my-url
curl -X PURGE http://example.com/my-url

我收到了 200 Purged 响应。

如果我做这两个:

curl -I http://example.com/my-url -H "Accept-Encoding: gzip"
curl -X PURGE http://example.com/my-url -H "Accept-Encoding: gzip"

我还获得了 200 净化。

现在如果我尝试:

curl -I http://example.com/my-url -H "Accept-Encoding: deflate"

我得到的 header 表明 Content-Encoding: 是“text/html;charset=utf-8”,并且它在缓存中已存在时间。这似乎表明我的应用程序不支持“deflate”,这可能是正确的。

该页面还有一个 Age: header ,表明它正在被缓存。

现在我该如何清除它? (我问的是一个没有实际意义的问题吗?)

所有这些尝试都会返回“404 不在缓存中”:

curl -X PURGE http://example.com/my-url -H "Accept-Encoding: deflate"
curl -X PURGE http://example.com/my-url -H "Accept-Encoding: text/html;charset=utf-8"
curl -X PURGE http://example.com/my-url -H "Accept-Encoding: text/html"

是否有一种神奇的方法可以清除 URL 的所有变体?

最佳答案

啊哈,通过应用一些谷歌,我偶然发现了一篇论坛帖子,其中提出了以下建议:

purge("req.url ~ ^" req.url "$"); 

即在 purge 后面使用正则表达式来处理所有 Accept-Encoding header 。

更多信息请点击:http://www.gossamer-threads.com/lists/varnish/misc/15124

..这意味着您需要修改您的 VCL。

关于varnish - 如何让 Varnish 清除 URL 的所有变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com