Я хочу добавить параметр к некоторому URL-адресу, который позволяет мне отключать кеширование страницы. Так что-то вроде https://example.org/foo/baa?uncached должен быть сервером серверов приложений, где как https://example.org/foo/baa может обслуживаться прямо из кеша лака.
Для этого я попытался добавить
if (req.url ~ "^/\?uncached") {
set req.http.X-VC-Cacheable = "NO:On user request";
return(pass);
}
в мой vcl_recv. Но как-то это не сработало (поведение кеширования не переключается). Это правильный подход? Что я сделал не так?
Думаю, должно быть:
if (req.url ~ "\?uncached") {
set req.http.X-VC-Cacheable = "NO:On user request";
return(pass);
}
В моем случае проблема заключалась в неправильном RegEx:
if (req.url ~ "^/\?uncached") {
Работает только для URL без какой-либо локальной части. В то время как:
if (req.url ~ "\?uncached") {
set req.http.X-VC-Cacheable = "NO:On user request";
return(pass);
}
workds для каждого URL, где uncached является первым параметром.