bạn back-end đang gửi "Cache-Control: no-cache" để Varnish trong đó hàm ý hai điều:
- Véc ni sẽ không lưu trữ phản hồi trong bộ nhớ cache (vì vậy tra cứu tiếp theo sẽ không thành công)
- Khách hàng của bạn (trình duyệt và proxy trung gian) sẽ không lưu lại bộ nhớ cache (và yêu cầu nhiều lần).
Giải pháp rất đơn giản: xóa tiêu đề kiểm soát bộ nhớ cache sau khi tìm nạp phản hồi từ phía sau (và trước khi lưu chúng trong bộ đệm).
Trong file vcl bạn làm:
sub vcl_fetch {
remove beresp.http.Cache-Control;
set beresp.http.Cache-Control = "public";
}
Bạn có thể chọn để chỉ làm điều này cho các url nhất định (bọc nó trong (if req.url ~ "")
logic) và làm công cụ cách nâng cao hơn.
Nó có thể giúp đỡ nếu bạn giải thích những gì bạn muốn. Cấu hình nào (véc ni hoặc mặt sau của bạn) đang gửi tiêu đề không có bộ nhớ cache? Bạn có thể ghi đè lên các tiêu đề này trong Varnish, nhưng cho dù điều này là 'chính xác' phụ thuộc vào ngữ nghĩa của câu trả lời của bạn (chúng có thể tái sử dụng, trên các máy khách, trong bao lâu, vv). – ivy
@ivy, Cảm ơn bạn đã trả lời. Những gì tôi đang cố gắng để đạt được là có ** Varnish ** gửi tiêu đề kiểm soát bộ nhớ cache mà tôi tự xác định, bất kể những gì back-end gửi đến Varnish. –