Укажите срок годности при настройке куки
Я хочу указать дату истечения срока действия при настройке куки в VCL. В настоящее время у меня есть что-то вроде этого:
add resp.http.Set-Cookie = "language=" + req.http.X-Language + "; path=/";
Я знаю, что мне придется добавить что-то вроде этого:
Expires=Thu, 01 Jan 1970 00:00:00 GMT
Есть ли встроенная функция в Varnish, которая позволит мне динамически устанавливать дату истечения срока в будущем? Я смотрю на их документы, но пока не повезло.
Заранее большое спасибо.
-Angel
2 ответа
Решение
ОБНОВЛЕНИЕ - Рабочий раствор:
Не уверен, что этот синтаксис специфичен для Fastly, но я получил его с помощью: time.add(now,1d)
:
add resp.http.Set-Cookie = "language=" + req.http.X-Language + ";expires="+ time.add(now,1d) +"; path=/";
Если вы используете Varnish 4, вы должны использовать Cookie VMOD. Из документа: https://github.com/varnish/varnish-modules/blob/master/docs/vmod_cookie.rst
format_rfc1123 STRING format_rfc1123 (ВРЕМЯ сейчас, DURATION timedelta) Описание Получите строку даты в формате RFC1123, подходящую для включения в заголовок ответа Set-Cookie. Следует проявлять осторожность, если в ответе несколько заголовков Set-Cookie. В этом случае следует использовать заголовок vmod. пример sub vcl_deliver { # Установите идентификатор пользователя на клиенте, который живет в течение 5 минут. set resp.http.Set-Cookie = "userid=" + req.http.userid + "; Expires=" + cookie.format_rfc1123(сейчас 5м) + "; httpOnly"; }