gpt4 book ai didi

Varnish 6 缺少来自不同浏览器的相同 URL 的请求

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

这就是我的varnish.vcl的样子。

vcl 4.0;

import directors;
import std;

backend client {
.host = "service1";
.port = "80";
}

sub vcl_recv {

std.log("varnish log info:" + req.http.host);

# caching pages in client

set req.backend_hint = client;

# If request is from conent or for pages remove headers and cache
if ((req.url ~ "/content/") || (req.url ~ "/cms/api/") || req.url ~ "\.(png|gif|jpg|jpeg|json|ico)$" || (req.url ~ "/_nuxt/") ) {
unset req.http.Cookie;
std.log("Cachable request");
}
# If request is not from above do not cache and pass to Backend.
else
{
std.log("Non cachable request");
return (pass);
}
}


sub vcl_backend_response {
if ((bereq.url ~ "/content/") || (bereq.url ~ "/cms/api/") || bereq.url ~ "\.(png|gif|jpg|jpeg|json|ico)$" || (bereq.url ~ "/_nuxt/") )
{
unset beresp.http.set-cookie;
set beresp.http.cache-control = "public, max-age=259200";
set beresp.ttl = 12h;
return (deliver);
}

}

# Add some debug info headers when delivering the content:
# X-Cache: if content was served from Varnish or not
# X-Cache-Hits: Number of times the cached page was served
sub vcl_deliver {

# Was a HIT or a MISS?
if ( obj.hits > 0 )
{
set resp.http.X-Cache-Varnish = "HIT";
}
else
{
set resp.http.X-Cache-Varnish = "MISS";
}

# And add the number of hits in the header:
set resp.http.X-Cache-Hits = obj.hits;
}
如果我从同一浏览器的netwrok选项卡中单击页面,则显示

X-Cache-Varnish = "HIT";
X-Cache-Hits = ;


可以说,如果我从 Chrome 合金上烫了10次,这就是我得到的

X-Cache-Varnish = "HIT";
X-Cache-Hits = 9;


9,因为首先是未命中,其余9是从缓存中提供的。
如果我尝试使用隐身窗口或其他浏览器,它将获得从0开始的计数。我认为我仍在某种程度上缓存cookie。我无法确定我所缺少的。
理想情况下,我想删除特定路径的所有cookie。但是 unset似乎不适合我。

最佳答案

如果您确实要确保缓存了这些请求,请确保在if语句中执行return(hash);
如果您不返回,则built-in VCL将接管并继续执行其标准行为。
除此之外,还不清楚您的后端是否设置了Vary header ,这可能会影响您的点击率。
我建议不要使用猜测,而是使用日志来确定它。
运行以下命令以跟踪您的请求:

varnishlog -g request -q "ReqUrl ~ '^/content/'"

This statement's VSL Query expression assumes the URL starts with /content. Please adjust accordingly.


请寄给我1个特定网址的 varnishlog摘录,但也请同时提供以下两种情况:
  • 在常规浏览器选项卡上命中高速缓存的文件
  • 在隐身模式下或其他浏览器中导致高速缓存未命中的一种

  • 日志将提供更多背景信息并说明发生了什么。

    关于 Varnish 6 缺少来自不同浏览器的相同 URL 的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65331569/

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