Điểm:2

Dừng NGINX lưu trữ cục bộ một thư mục

lá cờ nc

Vì vậy, vấn đề tôi hiện đang gặp phải là NGINX trên hệ thống của tôi tiếp tục lưu vào bộ nhớ đệm các tệp video lớn trong bộ nhớ khi yêu cầu HTTP được thực hiện. Điều này khiến NGINX sử dụng hơn 20GB bộ nhớ và tôi phải chạy đồng bộ hóa; tiếng vang 1 > /proc/sys/vm/drop_caches (xóa trang cache) thường xuyên để ngừng trao đổi liên tục. Tôi đã cung cấp bên dưới cấu hình có liên quan.

nginx.conf

vị trí /được bảo vệ/ {
    nội bộ;
    bí danh /usr/share/nginx/html/videos/;
}

tập lệnh.php

chức năng Tải xuống () {
    toàn cầu $path, $fname;
    $file = "$path/$fname";
    header("Kiểu nội dung: video/mp4");
    tiêu đề ("Độ dài nội dung: " . filesize($file)); 
    header('Bố trí nội dung: attachment; filename="'.$fname.'"');
    header("X-Accel-Redirect: /protected/$fname");
    lối ra;
}

Những gì tôi đã thử trong nginx.conf:

gửi tệp tắt;
if_modified_kể từ khi tắt;
hết hạn;
tắt thẻ;
proxy_no_cache 1;
proxy_cache_bypass 1;
open_file_cache tắt;

P.S: Tôi đang tính toán mức sử dụng bộ nhớ cho các tệp này bằng pcstat và fincore, các tệp MP4 này đang được lưu vào bộ nhớ cache 100% khi được người dùng xem và mỗi tệp có kích thước trên 5GB.

lá cờ us
Bạn có chắc đó là nginx sử dụng bộ nhớ 20GB trở lên không? Việc xóa bộ đệm trang không ảnh hưởng đến việc sử dụng bộ nhớ nginx, nó chỉ xóa các tệp khỏi bộ đệm.
Điểm:1
lá cờ us

Người ta có thể tắt bộ nhớ đệm của hệ điều hành cho các tệp do nginx cung cấp bằng cách sử dụng chỉ thị <size> cài đặt. <size> là ngưỡng cho kích thước tệp, các tệp lớn hơn ngưỡng đó sẽ được sao chép trực tiếp bằng DMA và các tệp không được lưu vào bộ nhớ cache.

djdomi avatar
lá cờ za
proxy_no_cache 1; bật hoặc tắt afaik là chính xác
lá cờ us
Không phải trong trường hợp này vì không có cấu hình proxy ngược. `proxy_no_cache` chỉ ảnh hưởng đến bộ nhớ đệm proxy ngược.
djdomi avatar
lá cờ za
vì bạn không hiển thị cấu hình đầy đủ, chúng tôi phải cho rằng bạn sử dụng kết nối proxy
djdomi avatar
lá cờ za
`expires -1;` vô hiệu hóa bất kỳ thử bộ nhớ đệm nào vì nó vô hiệu hóa bất kỳ yêu cầu nào và cũng như `add_header 'Kiểm soát bộ đệm' 'không lưu trữ, không lưu trữ bộ đệm, phải xác thực lại, xác thực lại proxy, max-age=0';` buộc THỰC SỰ bỏ qua mọi hành vi lưu trữ
lá cờ us
Đó là vô hiệu hóa bộ nhớ đệm HTTP. Nó không ảnh hưởng đến việc sử dụng bộ nhớ nginx theo bất kỳ cách nào.

Đă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.