Tôi đang sử dụng Nginx lát cắt
mô-đun để lấp đầy bộ đệm cho các tệp lớn như được hiển thị ở đây https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/
Đây là một cấu hình mẫu
địa điểm / {
lát 1m;
bộ đệm proxy_cache;
proxy_cache_key $uri$is_args$args$slice_range;
proxy_set_header Phạm vi $slice_range;
proxy_cache_valid 200 206 1h;
proxy_pass http://localhost:8000;
}
Bài báo nói:
NGINX cho phép lưu trữ các yêu cầu phạm vi như vậy và dần dần
lấp đầy bộ đệm bằng mô-đun Cache Slice, mô-đun này chia các tệp thành
âsliceâ nhỏ hơn. Mỗi yêu cầu phạm vi chọn các lát cắt cụ thể
bao gồm phạm vi được yêu cầu và nếu phạm vi này vẫn chưa được lưu trong bộ nhớ cache, hãy đặt
nó vào bộ đệm. Tất cả các yêu cầu khác cho các lát cắt này đều lấy dữ liệu
từ bộ đệm.
Câu hỏi của tôi là, điều gì sẽ xảy ra khi tất cả các phạm vi byte của một tệp đã được nhận từ phần phụ trợ và Nginx đã lưu vào bộ đệm tất cả các lát cắt. Nginx vẫn phục vụ các yêu cầu bằng cách sử dụng nhiều lát cắt hay nó nối tất cả các lát cắt để tạo thành một tệp lớn (giống như tệp trong phần phụ trợ) và sau đó nó phục vụ các yêu cầu từ tệp lớn?
Như tôi có thể thấy rằng khóa bộ đệm là proxy_cache_key $uri$is_args$args$slice_range;
. Vì vậy, điều đó có nghĩa là mặc dù Nginx có nội dung đầy đủ nhưng nó vẫn sẽ tách các lát cắt đó và phục vụ các yêu cầu phạm vi byte bằng cách sử dụng các lát cắt?
Cảm ơn