gpt4 book ai didi

caching - 什么时候应该在vcl_recv和vcl_fetch下添加相同的策略?

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

让我用一个例子来解释:

文件:/etc/varnish/default.vcl

# [...]

sub vcl_recv {

# [...]

if (req.request != "GET" && req.request != "HEAD") {
return (pass);
}

if (req.http.Authorization || req.http.Authenticate) {
return (pass);
}

if (req.url ~ "wp-(login|admin|comments-post.php|cron.php)") {
return (pass);
}

# [...]

return (lookup);
}

sub vcl_fetch {

# [...]

if (req.request != "GET" && req.request != "HEAD") {
return (hit_for_pass);
}

if (req.http.Authorization || req.http.Authenticate) {
return (hit_for_pass);
}

if (req.url ~ "wp-(login|admin|comments-post.php|cron.php)") {
return (hit_for_pass);
}

# [...]

return (deliver);
}

如您所见,对于不应缓存的内容,我在 vcl_recvvcl_fetch下有相同的策略,但分别使用 return (pass);return (hit_for_pass);

在某些情况下应该这样做( when it is useful),而在另一些情况下则绝对不需要这样做。这些是什么? (例如Cookie?如果是,如何?)

最佳答案

我真的不明白为什么在任何情况下都应该有用。当VCL不知道生成的响应不能是高速缓存时,可以创建“通过”对象。如果VCL认为我们不应该缓存响应,则应“通过”并完成该操作,从而避免整个“按点击创建”。

因此,建议非常简单。您可以在可能的情况下使用pass in recv,但是如果您不知道对象的可缓存性,则应该退而求其次让Varnish创建按次点击对象,从而避免序列化事务。

关于caching - 什么时候应该在vcl_recv和vcl_fetch下添加相同的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24162783/

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