Ответ 1
Только сеансы уникальны для каждого клиента, а не для файлов cookie.
То, что вы хотите, имеет смысл и возможно с помощью лака, это просто вопрос тщательного создания собственного vcl. Обратите внимание на следующие части default.vcl:
sub vcl_recv {
...
if (req.http.Authorization || req.http.Cookie) {
/* Not cacheable by default */
return (pass);
}
}
sub vcl_hit {
if (!obj.cacheable) {
return (pass);
}
...
}
sub vcl_fetch {
if (!beresp.cacheable) {
return (pass);
}
if (beresp.http.Set-Cookie) {
return (pass);
}
...
}
Вы должны заменить эти части своей собственной логикой; т.е. определить собственные функции vcl_. По умолчанию запросы (vcl_recv) и ответы (vcl_fetch) с кукисами не кэшируются. Вы знаете, что ваше back-end приложение лучше всего, и вы должны переписать общую логику кэширования в этом конкретном случае. То есть вы должны определить, в каком случае лак выполняет поиск, передачу или доставку.
В вашем случае у вас будут страницы (случаи 1 и 2) без cookie cookie, которые будут кэшироваться и совместно использоваться всеми (запросы с/без файлов cookie); просто не против req.http.Cookie в vcl_recv. Я не буду кэшировать страницы (случай 3) с помощью cookie файла по-разному, или, по крайней мере, не надолго, поскольку они не могут быть разделены вообще; выполните 'pass' в vcl_fetch.