Điểm:1

proxy_cache_bypass tiếp tục phục vụ phản hồi được lưu trong bộ nhớ cache cũ nếu URL thay đổi thành không thể lưu vào bộ nhớ cache

lá cờ md

Trong trường hợp bình thường, khi sử dụng proxy_cache_bypass nginx sẽ tìm nạp một bản sao mới từ thượng nguồn và ghi đè lên phản hồi đã lưu trong bộ nhớ cache bằng bản mới.

Nhưng nếu URL thay đổi từ phản hồi có thể lưu trong bộ nhớ cache thành phản hồi không thể lưu trong bộ nhớ cache (ví dụ: thành phản hồi 4xx với Kiểm soát bộ đệm: không có bộ đệm), sau đó sử dụng proxy_cache_bypass thực sự sẽ cung cấp một bản sao mới từ thượng nguồn, nhưng nó sẽ để lại bản sao cũ trong bộ đệm.

Điều đó có nghĩa là mọi lúc URL được yêu cầu mà không cần kích hoạt proxy_cache_bypass, nó sẽ tiếp tục phục vụ bộ đệm cũ.

Tôi đoán đây là một hành vi dự định, bởi vì proxy_cache_bypass chỉ có ghi đè lên phản hồi được lưu trong bộ nhớ cache bằng cách lưu một phản hồi mới và một không có bộ đệm phản hồi có nghĩa là không có gì để lưu? Đây có phải là những gì đang xảy ra?

Làm sao tôi có thể giải quyết việc này? Tôi không muốn bật bộ nhớ đệm cho phản hồi 4xx...

Tôi đang chạy nginx/1.14.2

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my-cache:70m max_size=28g inactive=1d;
proxy_temp_path /var/cache/nginx/tmp;
proxy_cache my-cache;
proxy_cache_key $remote_user$scheme$host$request_uri;

hết thời gian chờ lỗi proxy_cache_use_stale invalid_header http_500 http_502 http_503 http_504 http_429;

proxy_cache_bypass $http_cache_control;

proxy_read_timeout 90;
add_header X-Cache-Status $upstream_cache_status;

tắt thẻ;
Điểm:0
lá cờ us

Bạn có thể yêu cầu nginx chỉ lưu trữ các phản hồi 200, 301 và 302 bằng cách chỉ định

proxy_cache_valid 10m;

Điều này yêu cầu nginx lưu trữ các phản hồi hợp lệ trong mười phút.

lá cờ md
Có, nhưng tôi muốn sử dụng thời gian lưu vào bộ nhớ đệm cao hơn. Ngay bây giờ tôi đang đặt nó ở mức 24h. Bên cạnh đó, tôi nghĩ `Kiểm soát bộ đệm` sẽ ghi đè `proxy_cache_valid`
lá cờ us
Bạn có thể chỉ định bất kỳ lúc nào với `proxy_cache_valid`. Điểm chính của chỉ thị này là nó giới hạn bộ nhớ đệm chỉ cho các trạng thái phản hồi này. Các mã trạng thái khác không được lưu trữ.
lá cờ md
Tôi đã làm điều đó và nó không thay đổi bất cứ điều gì. Vấn đề không phải là nó đang lưu các mã trạng thái không mong muốn vào bộ nhớ đệm, mà là các phản hồi thay đổi từ `Kiểm soát bộ nhớ đệm` có thể lưu vào bộ nhớ đệm, tiếp tục phục vụ phản hồi được lưu trong bộ nhớ cache.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.