Назад | Перейти на главную страницу

Удаление лака по запросу страницы

У меня нет опыта работы с лаком. Я хочу настроить лак для чего-то очень простого: у меня две страницы

http://mysite.com/
http://mysite.com/additem

Я хочу кешировать http://mysite.com/additem на 10 минут и http://mysite.com/ в течение 1 минуты, но когда угодно http://mysite.com/additem посетил, хочу очистить кеш для http://mysite.com/. Любая помощь?

IIRC есть программа cli (очистка), которую вы можете вызвать из http://mysite.com/additemили используйте curl для отправки инструкции очистки (как HTTP-глагол), например

curl -X PURGE http://mysite.com/

Но это предполагает, что у вас есть скрипты на http://mysite.com/additem

Я предполагаю, что можно было бы вызвать чистку в обработчике VCL для http://mysite.com/additem

sub vcl_recv {
   if (req.url ~ "^http://mysite.com/additem") {
      purge("req.url == http://mysite.com/");
   }
}

(не проверено)

Часть 1:

Эта команда очистит (очистит) подпапку (например)

varnishadm -S /etc/varnish/secret -T localhost:6082 "ban req.http.host == mysite.com && req.url ~ ^/fold/.*$"

Для корня вашего домена это будет работать *

varnishadm -S /etc/varnish/secret -T localhost:6082 "ban req.http.host == mysite.com && req.url ~ ^/.*$"

* Примечание: необходимо проверить, очищает ли указанная выше подпапки (рекурсивно)

Часть 2: Вы отвечаете за сервер и не использовать его для (м) других пользователей? Ты разрешаешь системные команды в PHP? Если да, должно быть легко запускать команду всякий раз, когда http://mysite.com/additem посещается.

Вышеупомянутые команды работают из CLI, но не тестировались.