Нет необходимости использовать director
, если у вас есть только один бэкэнд. Varni sh автоматически выберет backend
, который вы объявили, если есть только 1 бэкэнд.
Очистка содержимого
Выполненный вами вызов очистки POST
не идеален. Пожалуйста, загляните на следующую страницу, чтобы узнать больше о недействительности контента в Varni sh: https://varnish-cache.org/docs/6.0/users-guide/purging.html#http -purging
Фрагмент на этой странице содержит ACL
для защиты вашего платформа от несанкционированных чисток.
Важно знать, что вам нужно создать хук в вашей CMS или вашем MVC контроллере, который выполняет очистку. Вот простой пример использования curl
в PHP:
$curl = curl_init("http://your.varnish.cache/url-to-purge");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PURGE");
curl_exec($curl);
Как видите, это HTTP-запрос, выполненный в cURL, который использует специальный метод PURGE
HTTP-запроса. Этот вызов должен быть выполнен в вашем хорошем праве сразу после сохранения изменений в базе данных. Этот хук после публикации гарантирует, что Varni sh удалит этот указанный объект c из кэша.
Очистка VCL
Приведенное ниже утверждение не похоже на надежный способ удаления файлов cookie. потому что выражение удалит куки со всех страниц, которые содержат точку:
if (req.url ~ "\.*") {
unset req.http.cookie;
}
То же самое относится к следующему выражению, полученному из хука vcl_backend_response
:
if (bereq.url ~ "\.*") {
unset beresp.http.Set-Cookie;
unset beresp.http.Cache-Control;
}
Я полагаю некоторые страницы действительно нуждаются в куки для правильной работы. Например, панель администратора, или CMS, или, возможно, даже заголовок, который указывает, вошли ли вы в систему или нет.
Лучший способ продвижения вперед - определить черный или белый список шаблонов URL, которые могут или не могут быть. быть кэшированным.
Вот пример:
if(req.url !~ "^/(admin|user)" {
unset req.http.Cookie;
}
В приведенном выше примере сохраняются файлы cookie только для страниц, которые начинаются с /admin
или /user
. Есть и другие способы.
Заключение
Надеюсь, очистительная часть ясна. Если нет, пожалуйста, обратите внимание на https://varnish-cache.org/docs/6.0/users-guide/purging.html#http -purging .
Относительно очистки VCL: очистка может работать, только если нужные вещи хранятся в кеше. Работа с cookie-файлами может быть сложной в Varni sh.
Просто попробуйте определить, при каких обстоятельствах cookie-файлы следует хранить для определенных c страниц. В противном случае вы можете просто удалить куки.
Надеюсь, это поможет. Удачи. Тхи js