0
我想在我的vcl_recv的規則來檢查,如果某個cookie的存在,如果是這樣總是提供緩存的文件(讓我們稱之爲這個cookie VARNISH_USE_CACHE)也光油總是緩存目前
然而,我有一條規則在此之後運行以檢查會話cookie(如果它總是存在傳遞給apache的話),如果VARNISH_USE_CACHE不存在,該規則仍然應該運行。
我不太清楚如何檢查一個cookie,然後檢查另一個。我試着把cookies分配給一個臨時變量,並在那裏檢查。但我不能理解vcl是如何工作的,因爲當我這樣做時,我最終得到的cookie完全沒有被刪除。
下面是vcl_rec我的代碼:
set req.http.tempCookie = ";" + req.http.Cookie;
set req.http.tempCookie = regsuball(req.http.tempCookie, ";(VARNISH_USE_CACHE)=", "; \1=");
set req.http.tempCookie = regsuball(req.http.tempCookie, ";[^ ][^;]*", "");
set req.http.tempCookie = regsuball(req.http.tempCookie, "^[; ]+|[; ]+$", "");
所以我期待req.http.tempCookie是空的,如果沒有VARNISH_USE_CACHE,相反,它總是有全部來自req.http.Cookie餅乾。