暂时禁用 Varnish 缓存的最简单方法(varnishadm)

暂时禁用 Varnish 缓存的最简单方法(varnishadm)

辨别清漆最简单的方法是什么:

嘿,Varnish 进程,请清除缓存。另外,现在请不要缓存任何东西。我希望您现在将所有请求直接传递到后端。稍后,当我希望您恢复正常运行时,我会通知您。

我正在对网站进行一些调试和迭代,但我厌倦了在每次更改和新请求之间使用此命令不断清除缓存。

varnishadm 'ban req.url ~ "."'

此外,这是一个相当复杂的 varnish 配置,它有许多适用于许多不同网站和域的后端。

我只想要最简单的命令来告诉 varnish 暂时强制所有请求到后端。

# this command does not exist
varnishadm 'caching-pause req.url ~ "."'

以及相应的简单命令来恢复 varnish 的正常运行。

# 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 文件的列表并查看哪一个是活动的。

相关内容