gpt4 book ai didi

caching - hash_data vcl_hash 的作用是什么?

转载 作者:行者123 更新时间:2023-12-02 21:28:09 25 4
gpt4 key购买 nike

谁能解释一下下面的vcl代码:

sub vcl_hash {
hash_data(req.url);

if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}

if (req.http.Cookie) {
hash_data(req.http.Cookie);
}
}

我只了解使用 hash_data 函数作为缓存键对 req.url 进行哈希处理。接下来的 if else 代码对我来说太模糊了。

最佳答案

hash_data 方法用于设置缓存对象的哈希值,即键。该键用于将对象与缓存中已有的对象进行比较。

在您发布的代码中,哈希值首先考虑的是所请求页面的 URL:req.url

但请注意,如果 Varnish 仅使用 URL 来哈希对象,则它会过于模糊,并可能导致相同的缓存被传递到不同的站点,例如 www.example.com/test_url 和 < em>www.example2.com/test_url。

为了避免这个问题,如果存在,它将添加主机(req.http.host)到哈希中,如果不存在,它将添加IP(server.ip ),例如 http://192.168.0.1/test_url

最后,它将检查 Cookie 是否存在,如果存在,则将它们添加到哈希中。当页面根据 cookie 显示不同的内容时,就会完成此操作。

关于caching - hash_data vcl_hash 的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41604957/

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