Я не вижу подобный вопрос, но извиняюсь, если я обманываю.Как отправить запрос на очистку в лаке
Мы используем кеш-лак в нашей системе, но хотим установить систему, в которой мы можем очистить отдельные страницы при их редактировании (довольно нормально). Мы пытались заставить его работать с использованием 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, но, опять же, он, похоже, не работает. Я пропустил что-то действительно основное здесь, или это базовый звук, то есть моя реализация прослушивается?
Большое спасибо,
Yup, PURGE - это HTTP-запрос, такой как GET или POST, хотя он публикует RFC 2616, но он используется кэшами контента и прокси-серверами, такими как Squid, Varnish и Apache Traffic Server. Быстрый google «PURGE curl_setopt» поднял [этот пример] (http://www.rwahyudi.com/linux/purge-squid-cache-using-curl-without-squidclient/). Наслаждайтесь :) – TerryE
Большое спасибо вам обоим! Весьма признателен! :) – flukeflume
Или для более специальных или сценариев подходов вы также можете использовать «curl -XPURGE» http: //your.varnish.cache/url-to-purge »' –