У меня есть несколько сайтов, которые я хочу кэшировать с помощью одного и того же экземпляра лака.
Я настроил бэкэнд, используя что-то вроде:
if (req.http.host == "time.ikub.al") {
# Process through time backend
set req.backend_hint = timeserver;
}
if (req.http.host == "m.time.ikub.al") {
# Process through time mobile backend
set req.backend_hint = timemobileserver;
}
и хэш-метод выглядит так:
sub vcl_hash {
# Called after vcl_recv to create a hash value for the request. This is used as a key
# to look up the object in Varnish.
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
# hash cookies for requests that have them
if (req.http.Cookie) {
hash_data(req.http.Cookie);
}
}
Однако я заметил, что страницы из мобильной версии обслуживаются на десктопе и наоборот. Это произошло на страницах с одинаковым именем, например «Default.aspx».
Насколько я понимаю код выше, хэш должен включать хостовую часть, а этого не должно происходить. Я что-то упустил, или есть какие-то рекомендации по работе с несколькими сайтами?
Спасибо, Альберт