暫時禁用 Varnish 快取的最簡單方法 (varnishadm)

暫時禁用 Varnish 快取的最簡單方法 (varnishadm)

辨別清漆最簡單的方法是什麼:

嘿 Varnish 進程,請清除快取。另外,現在請不要快取任何內容。我希望您現在將所有請求直接傳遞到後端。當我希望您稍後恢復正常操作時,我會通知您。

我正在網站上進行一些調試和迭代,但我厭倦了在每次更改和新請求之間不斷使用此命令清除快取。

varnishadm 'ban req.url ~ "."'

此外,這是一個相當複雜的清漆配置,具有許多不同網站和網域的許多後端。

我只想要一個最簡單的指令來告訴 varnish 暫時強制所有請求到後端。

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

以及相應的簡單命令將varnish恢復到正常運作狀態。

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

有沒有一些簡單的方法可以告訴清漆暫時停止快取所有內容?

答案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 檔案清單並查看哪個檔案處於活動狀態。

相關內容