Varnish

清漆記憶體不適用於ajax呼叫

  • March 7, 2022
if (req.url ~ "do_ajax.php" && req.request == "GET") {
     return (lookup);
}

我將這一行放在 varnish.vcl 配置中,但我在響應頭中得到了這個頭:

no-cache, must-revalidate, max-age=0

我也嘗試過:

if (req.url ~ "do_ajax.php" && req.request == "GET") {
     return (hash);
}

但是清漆無法重新啟動,除非我刪除返回(雜湊)。

現在,我想知道清漆配置文件中是否有一行強制所有 ajax 呼叫不接受記憶體,我不明白的第二件事是為什麼我在響應頭中得到它,不應該是客戶端在請求標頭中發送這個而不是?為什麼伺服器返回這個?

正如您在其他文章中提到的:您可能使用的是過時版本的 Varnish。這可以解釋為什麼 VCL 語法不起作用。

請確保您使用的是 Varnish 6 或 Varnish 7。根據您使用的 Linux 發行版,請參閱https://www.varnish-software.com/developers/downloads/#linux-packages獲取安裝過程列表。

我還在您發布的其他文章中提供了 VCL 解決方案。

引用自:https://serverfault.com/questions/1095356