2013-03-15 2 views
2

У меня проблема с очисткой лака:Многократная очистка по краям Лакировка

Наше приложение очень динамично. Итак, событие в Object A будет генерировать 10.000 Purges, потому что информация Object A присутствует на всех страницах.

Объект A является продавцом статов и страницами страницы объявлений.

Мы управляем этим вызовом asynch http PURGE для лака из php-кода с помощью curl.

Таким образом, мы будем иметь 10000 HTTP вызова URL-адрес не может быть вычислен (так Regex не является опционы)

Я хочу спросить вас, ребята, есть ли возможность в лаке, чтобы сделать некоторый Batch продувка (HTTP интерфейс)?

Если нет, то какие параметры вы тестируете и работаете в очень динамичном приложении, когда модель и события сильно влияют на ваши страницы.

Заранее спасибо Набиль

ответ

2

Запуск чисток через varnishadm будет лучшим выбором. Вы можете либо туннелировать команды через SSH (при условии, что вы имеете дело с удаленным сервером Varnish), либо разрешить удаленный доступ с вашего веб-сервера к серверу Varnish.

Вы можете легко написать свой собственный сценарий оболочки для запуска пакетной очистки с помощью varnishadm, или вы можете взглянуть на Thinner, который предназначен для очистки на основе Ruby, чтобы сделать именно то, что вы ищете.

Очевидной альтернативой, которой вы, скорее всего, считается уже, чтобы заново написать приложение, чтобы включить объект А в URL или в пользовательском заголовке (например X-Object: A), так что вы могли бы сделать запрет на основе на этот заголовок:

sub vcl_recv { 
    if (req.request == "BAN") { 
    ban("obj.http.x-object == " + req.http.x-object); 
    } 
} 
+0

Да, запрет через варнишадм (в Лак 3) - это путь. Я собрал [Gist о работе с ним здесь] (https://gist.github.com/aderowbotham/5517123) – Ade

Смежные вопросы