使用清漆4缓存来自多个服务器的相同请求的不同内容。它看起来像缓存来自一台服务器的第一个请求,并为每个后续请求不断提供相同的内容。清漆4从多个不同内容的服务器缓存
做卷曲给予两个缓存和不同年龄的响应。
是否有像负载或其他任何粘性行为的因素? 使用Jmeter和Apache的基准加载,但仍然有同样的行为。
我的vcl_hash好吗?想要使用后端服务器的url和ip的散列组合保存对象。
至少在我的情况下,看起来像在缓存对象的ttl之后,varnish从第二个服务器缓存并返回,直到ttl完成。但这不是我们所期望的行为?
我错过了什么?
使用循环法和hash_data。下面是我的config.vcl
backend s1{
.host = "190.120.90.1";
}
backend s2{
.host = "190.120.90.2";
}
sub vcl_init {
new vms = directors.round_robin();
vms.add_backend(s1);
vms.add_backend(s2);
}
sub vcl_recv {
set req.backend_hint = vms.backend();
}
sub vcl_hash {
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
return(lookup);
}
完美..我想错了..你的答案应该为我工作..关于不同的内容,响应缓存并提供缓存的对象,并在平均时间,如果用户更新他的内容在社交网络缓存对象应该是无效并返回新的资源(我需要考虑我认为的体系结构) – user1609085
我建议您在您的Varnish配置中实施清除,并在需要使对象无效时使用它。这里是它的链接:http://book.varnish-software.com/4.0/chapters/Cache_Invalidation.html#http-purge – alejdg