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

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

0
задан 28 August 2021 в 08:29
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 и узнать, какой из них активен.

1
ответ дан 28 August 2021 в 09:57

Теги

Похожие вопросы