Tôi đã phát hiện ra rằng tôi có thể thiết lập TTL trong Varnish như sau trong tệp VCL của mình:
sub vcl_fetch {
# 1 minute
set obj.ttl = 1m;
}
Nhưng cài đặt mặc định là gì (giả sử máy chủ phụ trợ không cài đặt tiêu đề kiểm soát bộ đệm)?
Tôi đã phát hiện ra rằng tôi có thể thiết lập TTL trong Varnish như sau trong tệp VCL của mình:
sub vcl_fetch {
# 1 minute
set obj.ttl = 1m;
}
Nhưng cài đặt mặc định là gì (giả sử máy chủ phụ trợ không cài đặt tiêu đề kiểm soát bộ đệm)?
Câu trả lời:
Đây là trong mẫu mặc định:
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);
}
Vì vậy, 120 giây.
varnish-<version>
thẻ để xem phiên bản cho bản phát hành Varnish của bạn.
TTL mặc định có thể được chuyển qua lệnh var Vecd thông qua công -t
tắc dòng lệnh và có thể có nguồn gốc từ một tệp thuộc tính trên hệ thống tệp của bạn. Trên hệ thống CentOS tôi đang xem nó được thiết lập bằng cách sử dụng DEFAULT_TTL
từ /etc/sysconfig/varnish
.
Bạn có thể thấy cài đặt trực tiếp bằng cách sử dụng véc ni như vậy,
varnishadm param.show default_ttl
Trên thực tế, theo logic VCL mặc định liên quan đến các đối tượng không lưu trữ được.
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);
}
có nghĩa là "nếu đối tượng không được lưu trong bộ nhớ cache - chuyển yêu cầu của máy khách cho đối tượng này trực tiếp và đồng thời trong 2 phút, không xếp hàng chúng"
Đọc thêm tại /programming/12691361/varnish-hit-for-pass-means