Самый простой способ сообщить varnish:
Привет, Varnish, процессы, пожалуйста, очистите кеш. А также, пожалуйста, сейчас вообще ничего не кешируйте. Я хочу, чтобы вы пока просто передавали все запросы прямо в серверную часть. Я дам вам знать, когда захочу, чтобы вы через некоторое время вернулись к нормальной работе.
Я занимаюсь отладкой и итерацией на веб-сайте, но я устал постоянно очищать кеш с помощью этой команды между каждым изменением и новым запросом.
varnishadm 'ban req.url ~ "."'
Кроме того, это довольно сложная конфигурация Varnish, имеющая множество бэкендов для различных веб-сайтов и доменов.
Мне просто нужна простейшая команда, которая укажет varnish временно принудительно направлять все запросы к бэкэнду.
# this command does not exist
varnishadm 'caching-pause req.url ~ "."'
И соответствующая простая команда для возврата лака к нормальной работе.
# this command also does not exist
varnishadm 'caching-resume req.url ~ "."'
Есть какой-нибудь простой способ указать Varnish временно прекратить кэширование всего?
Убедитесь, что следующий код VCL находится в /etc/varnish/no-cache.vcl
:
vcl 4.0;
backend default {
.host = "your-host";
.port = "your-port";
}
sub vcl_recv {
return(pass);
}
Затем загрузите VCL следующим образом:
varnishadm vcl.load nocache /etc/varnish/no-cache.vcl
Когда захотите Varnish, чтобы обойти кеш, выполните следующую команду:
varnishadm vcl.use nocache
Если вы хотите вернуться к нормальной работе и ваш обычный VCL называется boot
, просто используйте следующую команду:
varnishadm vcl.use boot
Вы можете использовать
varnishadm vcl.list
, чтобы просмотреть список загруженных файлов VCL и узнать, какой из них активен.