Некоторые из моих клиентов используют Varnish для кеширования на своих сайтах, а другие полагаются на Nginx. Из-за того, что их сайты должны быть очень динамичными, но при этом быстро загружаться, мне нужно настроить обе системы (Varnish и Nginx) для использования ключей динамического кеша.
Чтобы быть более понятным, я знаю, что оба они изначально используют URL-адрес страницы в качестве ключа кеша. То есть они берут http://example.org/some/page
в качестве ключа и сохраните кешированную копию этой страницы. При повторном запросе того же URL-адреса возвращается кешированная страница. Таким образом, для каждого URL будет только одна копия контента.
Что мне нужно сделать, так это изменить это поведение, чтобы Varnish и / или Nginx использовали ключ кеша, который не только содержит URL-адрес, но и некоторые значения, которые можно найти в файлах cookie. В псевдокоде логика должна быть следующей:
$cookies = ["one", "two", "three"]
if(<none of the cookies is set>) {
// Cookies are not set
// Let the page load dynamically, so that cookies can be set
disable_caching()
}
else {
// Cookies are set
// Create a dynamic cache key, taking the cookies into account
$cache_key = $page_url + $cookies["one"] + $cookies["two"] + $cookies["three"]
load_cached_page($cache_key)
}
Я искал такое решение, но почти не знаю Varnish и Nginx и не мог найти примера того, как этого можно было бы достичь. Любые предложения или ссылки на примеры приветствуются. Заранее спасибо за помощь.