Varnish 2.1:我正在尝试使用http PURGE让Varnish更新一个缓存的URL.
在测试时,我会得到看起来很奇怪的结果,直到我在文档中读到这一点:"如果缓存中存在相同URL的多个变体,则只会清除匹配的变体.清除相同的gzip变体页面请求必须如下所示:"
所以现在如果我执行这两个命令:
curl -I http://example.com/my-url
curl -X PURGE http://example.com/my-url
Run Code Online (Sandbox Code Playgroud)
我收到了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"
Run Code Online (Sandbox Code Playgroud)
我也得到了200 Purged.
现在,如果我尝试:
curl -I http://example.com/my-url -H "Accept-Encoding: deflate"
Run Code Online (Sandbox Code Playgroud)
我收回标题,表明Content-Encoding:是"text/html; charset = utf-8",并且它在缓存中有年龄.这似乎表明我的应用程序不支持"deflate",这可能是正确的.
该页面还有一个Age:标头,表示它正在被缓存.
现在我该如何清除它?(我问的是一个没有实际意义的问题吗?)
所有这些尝试都返回"404 Not in cache":
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"
Run Code Online (Sandbox Code Playgroud)
有没有一种神奇的方法可以清除URL的所有变体?
啊啊,通过应用一些google-fu,我偶然发现了一个论坛帖子,这表明以下内容:
purge("req.url ~ ^" req.url "$");
Run Code Online (Sandbox Code Playgroud)
即使用清除后面的正则表达式来处理所有Accept-Encoding标题.
更多信息:http://www.gossamer-threads.com/lists/varnish/misc/15124
..这意味着你需要修改你的VCL.
| 归档时间: |
|
| 查看次数: |
9001 次 |
| 最近记录: |