Мне нужно правило в моем vcl_recv, которое проверяет, присутствует ли определенный файл cookie, и если да, всегда обслуживает кешированный файл (назовем этот файл cookie VARNISH_USE_CACHE)
Однако у меня также есть правило, которое запускается после этого для проверки файла cookie сеанса (и если он существует, всегда передается в apache), это правило все равно должно выполняться, если VARNISH_USE_CACHE отсутствует.
Я не совсем уверен, как проверять один файл cookie, а затем проверять другой. Я попытался назначить файлы cookie временной переменной и проверить там. Но я не должен понимать, как работает 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, вместо этого он всегда имеет все файлы cookie из req.http.Cookie.