Я виявив, що я можу встановити TTL у лаці так, як у моєму файлі VCL:
sub vcl_fetch {
# 1 minute
set obj.ttl = 1m;
}
Але який параметр за замовчуванням (якщо припустити, що сервер не встановлює кеш-керуючий заголовок)?
Я виявив, що я можу встановити TTL у лаці так, як у моєму файлі VCL:
sub vcl_fetch {
# 1 minute
set obj.ttl = 1m;
}
Але який параметр за замовчуванням (якщо припустити, що сервер не встановлює кеш-керуючий заголовок)?
Відповіді:
Це в шаблоні за замовчуванням:
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);
}
Отже, 120 секунд.
varnish-<version>
теги, щоб побачити версію випуску Varnish.
TTL за замовчуванням може передаватися командою varnishd за допомогою -t
перемикача командного рядка і, ймовірно, походить з файлу властивостей вашої файлової системи. Про систему CentOS я дивлюся на це встановлюється з допомогою DEFAULT_TTL
з /etc/sysconfig/varnish
.
Ви можете побачити налаштування в реальному часі, використовуючи varnishadm, як-от так,
varnishadm param.show default_ttl
Власне, наступна логіка VCL за замовчуванням стосується не кешованих об'єктів.
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);
}
означає "якщо об'єкт не підлягає кешуванню - передавайте запити клієнтів цього об'єкта в бекенд безпосередньо та одночасно протягом 2 хвилин, не встановлюйте їх у чергу"
Детальніше читайте на /programming/12691489/varnish-hit-for-pass-means