Невозможно очистить, используя CURL на ЛАКИ

102
11

Я не могу очистить объекты в лаке, используя CURL

Команда CURL: curl -X PURGE localhost/public/stylesheets/main.css -v команда curl возвращает ответ 200 OK. объект не очищается

config file in VARNISH : default.vcl
sub vcl_miss {
if (req.request == "PURGE") {
purge;
error 404 "Not in cache.";
}
if (req.http.user-agent ~ "spider") {
error 503 "Not presently in cache";
}
return (fetch);
}

sub vcl_hit {
if (req.request == "PURGE") {
purge;
error 200 "Purged.";
}
return (deliver);
}

sub vlc.recv{
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
return(lookup);
}
}

Пожалуйста, помогите в этом

спросил(а) 2013-05-23T20:02:00+04:00 8 лет, 5 месяцев назад
1
Решение
136

включите запрос "PURGE" на vcl_recv, затем выполните очистку непосредственно в recv, проигнорируйте, существует ли это или нет, это не имеет отношения к процессу очистки

if (client.ip ~ purge && req.request == "PURGE" ){ purge; error 999; return(error)}
if (req.request != "GET" &&
req.request != "HEAD" &&
req.request != "PUT" &&
req.request != "POST" &&
req.request != "TRACE" &&
req.request != "OPTIONS" &&
req.request != "DELETE") {
/* Non-RFC2616 or CONNECT which is weird. */
set req.http.xpass="PASS_header";
return (pass);
}

многократный лак не получает реальный IP-адрес реквестера (некоторый непрозрачный прокси от вашего провайдера, например, балансировщик загрузки amazon), поэтому забудьте client.ip ACL и сделайте регулярное выражение для req.http.x-forwarded-for для соответствия чистке разрешено ips... оно не безопасно... но может быть единственной упрощенной альтернативой

извините бедный английский

ответил(а) 2014-01-28T20:07:00+04:00 7 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема