gpt4 book ai didi

caching - 带有 json 内容类型的 Varnish 缓存未命中

转载 作者:行者123 更新时间:2023-12-03 17:46:09 28 4
gpt4 key购买 nike

我正在使用以下vcl来帮助我确定我是否遇到了Varnish缓存命中或未命中:

sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Varnish-Cache = "HIT";
}
else {
set resp.http.X-Varnish-Cache = "MISS";
}
}

这工作正常,但不适用于application/json内容类型。
我在每个请求上都得到X-Varnish-Cache =“MISS”,但是我不明白为什么会这样(我怀疑这是一个假否定)。

这是我(显然)未缓存的json请求的响应 header 的示例:
Accept-Ranges:bytes
Age:0
Cache-Control:public, max-age=10800
Connection:keep-alive
Content-Encoding:gzip
Content-Length:2139
Content-Type:application/json
Date:Thu, 09 Jan 2014 16:08:21 GMT
Etag:"1389283199-1"
Expires:Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified:Thu, 09 Jan 2014 15:59:59 +0000
Server:Apache
Vary:Cookie,Accept-Encoding
Via:1.1 varnish
X-Drupal-Cache:HIT
X-Powered-By:PHP/5.3.23
X-Varnish:544296535
X-Varnish-Cache:MISS

如果我看一下响应时间,则对同一URL的后续请求的响应时间要快8倍(第一次是800毫秒,第二次是100毫秒,然后再打开)。这使我认为Varnish正在缓存,但是我的vcl是不正确的。

我还应该补充一点,该请求没有发送任何cookie,这是一个GET请求。

最佳答案

您的 VCL 是正确的(顺便说一句:当 Varnish 响应来自缓存 X-Varnish header 时,带有 2 个数字)。

由于 Drupal 缓存,响应时间得到改善。

由于 cookie 或您的 VCL,可能 JSON 没有被缓存。

您在 https://github.com/NITEMAN/varnish-bites/blob/master/varnish3/drupal-base.vcl 上有一个适用于 drupal 的 VCl

无论如何,要跟踪问题您的完整 VCL 和请求的 varnishlog 跟踪。

关于caching - 带有 json 内容类型的 Varnish 缓存未命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21025535/

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