Назад | Перейти на главную страницу

Объекты кэша Varnish истекают в течение льготного периода устаревания при повторной валидации

Я добавил Varnish 4.0 на сервер CentOS 6 с cPanel, чтобы кэшировать сайт, который я разработал. Я пытаюсь реализовать stale-while-revalidate чтобы гарантировать, что всем пользователям предоставляется кешированная версия страницы, чтобы max-age 2 минуты истекло, чтобы вернуть устаревшую копию страницы было бы достаточно на 3-месячный период, и сервер при необходимости регенерирует объект кеша в фоновом режиме.

Ниже приведен пример набора возвращаемых заголовков ответа:

Accept-Ranges:bytes
Age:539
Cache-Control:public, max-age=120, stale-while-revalidate=7889220
charset:utf-8
Connection:keep-alive
Content-Length:54511
Content-Type:text/html; charset=utf-8
Date:Mon, 14 Sep 2015 12:52:00 GMT
Expires:Mon, 14 Sep 2015 12:54:01 GMT
grace:7889220s
Pragma:cache
X-Cache:HIT
X-Cache-Hits:2

Кажется, что механизм работает до определенной степени. В приведенном выше случае возвращается кешированная копия, и следующий запрос правильно возвращает копию, в которой Age установлено, например, 10 (т.е. прошло 10 секунд с момента сброса кэша в фоновом режиме). Однако в какой-то момент в будущем (в порядке часов) запрос к той же странице приводит к пропуску кеша, и страница, по-видимому, напрямую попадает в серверную часть, а заголовки ответа указывают на Age из 0. Я не могу сказать, почему не возвращается устаревшая копия.

У меня нет опыта работы с Varnish, и я использую версию образец шаблона Varnish 4.0 от Mattias Geniar, модифицированный для Craft CMS (PHP CMS, на которой построен сайт).

Есть ли что-нибудь в файле VCL, которое может вызывать промахи кеша, или это, вероятно, проблема конфигурации сервера?