使用清漆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