Default TTL can be passed through the varnishd command via the -t commandline switch and is probably sourced from a properties file on your filesystem. On the CentOS system I'm looking at it is set using DEFAULT_TTL from /etc/sysconfig/varnish.
You can see the live setting using varnishadm like so,
varnishadm param.show default_ttl
Actually, following default VCL logic relates to non-cacheable objects.
sub vcl_fetch {
if (beresp.ttl <= 0s ||
beresp.http.Set-Cookie ||
beresp.http.Vary == "*") {
/*
* Mark as "Hit-For-Pass" for the next 2 minutes
*/
set beresp.ttl = 120 s;
return (hit_for_pass);
}
return (deliver);
}
means "if object is not cacheable - pass client requests for this object to backend directly and simultaneously for 2 minutes, do not queue them"
sub vcl_fetch {
if (beresp.ttl <= 0s ||
beresp.http.Set-Cookie ||
beresp.http.Vary == "*") {
/*
* Mark as "Hit-For-Pass" for the next 2 minutes
*/
set beresp.ttl = 120 s;
return (hit_for_pass);
}
return (deliver);
}
Default TTL can be passed through the varnishd command via the
-t
commandline switch and is probably sourced from a properties file on your filesystem. On the CentOS system I'm looking at it is set usingDEFAULT_TTL
from/etc/sysconfig/varnish
.You can see the live setting using varnishadm like so,
Actually, following default VCL logic relates to non-cacheable objects.
means "if object is not cacheable - pass client requests for this object to backend directly and simultaneously for 2 minutes, do not queue them"
Read more at https://stackoverflow.com/questions/12691489/varnish-hit-for-pass-means
This is in the default template:
So, 120 seconds.