Запретить varnish кэшировать ответ cookie

. Когда varnish возвращает кеш, он также возвращает куки, сгенерированные на бэкэнде, или только css, изображения и html возвращаются во фронтенд? У меня были пользователи, которые говорили мне, что они продолжают получать неправильные файлы cookie, поэтому я думаю, что, поскольку файлы cookie основаны на данных геолокации, причиной был кеш лака. Если это так, есть ли способ запретить varnish возвращать какие-либо кэшированные данные для файлов cookie?

0
задан 17 August 2021 в 17:46
1 ответ

Встроенное поведение Varnish VCL будет отправлять заголовки Set-Cookie, которые были отправлены исходным сервером клиенту. Это позволит клиенту установить соответствующий файл cookie в браузере.

Однако, поскольку заголовок Set-Cookie подразумевает изменение состояния, Varnish не будет сохранять эти результаты в кэше и будет возвращать так называемый объект Hit-For-Miss для следующие 2 минуты.

Это означает, что следующий запрос для этого объекта будет автоматически обходить кеш. Если какой-либо из последующих ответов серверной части больше не содержит заголовок Set-Cookie, Varnish будет считать ответ кэшируемым.

См. https://github.com/varnishcache/varnish-cache/blob/6.0/bin/varnishd/builtin.vcl#L157-L165 для встроенного VCL, который определяет это поведение.

Если ваш VCL активно не вмешивается в логику подпрограммы vcl_backend_response, всегда будет действовать поведение по умолчанию, а ответы, содержащие заголовки Set-Cookie, не будут кэшироваться.

Пожалуйста, поделитесь своим VCL, чтобы узнать, так ли это.

1
ответ дан 17 August 2021 в 18:48

Теги

Похожие вопросы