Você sempre pode definir um cabeçalho personalizado em vcl_recv:
sub vcl_recv {
if (req.http.Cookie ~ "(JSESSIONID=)" ) {
/* do not cache logged in users */
set req.http.x-my-mark = "passed";
return (pass);
}
return (lookup);
}
#...
sub vcl_fetch {
if (req.http.x-my-mark == "passed") {
/* custom rules block */
if (req.url ~ "^/foo") { set beresp.ttl=30s; }
if (req.url ~ "^/bar") { set beresp.ttl=1m; }
if (req.url ~ "^/123") { set beresp.ttl=10m; }
}
return (deliver);
}
Mas eu acho que será muito mais limpo colocar seu login em vcl_pass
[1] ou apenas executar sua verificação original em vcl_fetch:
sub vcl_fetch {
if (req.http.Cookie ~ "(JSESSIONID=)") {
/* custom rules block */
if (req.url ~ "^/foo") { set beresp.ttl=30s; }
if (req.url ~ "^/bar") { set beresp.ttl=1m; }
if (req.url ~ "^/123") { set beresp.ttl=10m; }
}
return (deliver);
}
[1] link