Самый простой способ временно отключить кэш Varnish (varnishadm)

Самый простой способ временно отключить кэш Varnish (varnishadm)

Как проще всего отличить лак:

Эй, процессы 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 временно прекратить кэширование всего?

решение1

Убедитесь, что следующий код 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 и определения того, какой из них активен.

Связанный контент