Я не вижу похожего вопроса, но прошу прощения, если я дублирую.
Мы используем кэш varnish в нашей системе, но хотим установить систему, в которой мы можем очищать отдельные страницы, когда они редактируются (довольно нормально). Мы пытались заставить это работать, используя HTTP-заголовок. Итак, наш VCL настроен следующим образом:
acl purge {
"localhost";
#### Our server IP #####
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
return (lookup);
}
}
sub vcl_hit {
if (req.request == "PURGE") {
purge;
}
}
sub vcl_miss {
if (req.request == "PURGE") {
purge;
}
}
Однако я застрял на том, как на самом деле отправить http-запрос на очистку. Мы используем PHP для сайта, поэтому я пробовал использовать:
header("PL: PURGE / HTTP/1.0");
header("Host: url to purge");
Но это, похоже, ничего не делает (и varnishlog, похоже, не показывает, что что-то очищается).
Я также экспериментировал с cURL, но, опять же, похоже, что это не работает. Я упускаю что-то действительно базовое, или основа хороша, а моя реализация ошибочна?
Большое спасибо,