Puncte:2

Opriți NGINX să memoreze local în cache un director

drapel nc

Deci, problema cu care mă confrunt în prezent este că NGINX pe sistemul meu păstrează cache fișiere video uriașe în memorie atunci când se face o solicitare HTTP. Acest lucru face ca NGINX să folosească 20 GB+ de memorie și eu trebuie să rulez sincronizare; echo 1 > /proc/sys/vm/drop_caches (Ștergerea cache a paginii) frecvent pentru a opri schimbarea constantă. Am furnizat mai jos configurația relevantă.

nginx.conf

locație /protejat/ {
    intern;
    alias /usr/share/nginx/html/videos/;
}

script.php

funcția Download(){
    global $cale, $fname;
    $fișier = „$cale/$fname”;
    header("Tip de conținut: video/mp4");
    header("Lungimea conținutului: " . dimensiunea fișierului($fișier)); 
    header('Conținut-Dispoziție: atașament; filename="'.$fname.'"');
    header("X-Accel-Redirect: /protected/$fname");
    Ieșire;
}

Ce am încercat în nginx.conf:

sendfile dezactivat;
if_modified_since off;
expiră;
etag off;
proxy_no_cache 1;
proxy_cache_bypass 1;
open_file_cache dezactivat;

P.S: Eu calculez utilizarea memoriei pentru aceste fișiere folosind pcstat și fincore, aceste fișiere MP4 sunt stocate 100% în cache atunci când sunt vizionate de un utilizator și fiecare are o dimensiune de peste 5 GB.

drapel us
Ești sigur că nginx folosește o memorie de peste 20 GB? Eliminarea memoriei cache a paginilor nu afectează utilizarea memoriei nginx, ci doar elimină fișierele din cache.
Puncte:1
drapel us

Se poate dezactiva stocarea în cache a sistemului de operare pentru fișierele servite de nginx folosind directio <dimensiune> setare. <size> este pragul pentru dimensiunea fișierului, fișierele mai mari decât acestea vor fi copiate direct folosind DMA și fișierele nu sunt stocate în cache.

djdomi avatar
drapel za
proxy_no_cache 1; afaik on sau off este corect
drapel us
Nu în acest caz, deoarece nu este configurat un proxy invers. `proxy_no_cache` afectează doar stocarea în cache proxy inversă.
djdomi avatar
drapel za
deoarece nu afișați configurația completă, trebuie să presupunem că utilizați o conexiune proxy
djdomi avatar
drapel za
`expires -1;` dezactivează orice încercare de stocare în cache, deoarece invalidează orice solicitare și, de asemenea, `add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';` forțați cu adevărat să ignore orice comportament de stocare în cache
drapel us
Asta dezactivează stocarea în cache HTTP. Nu afectează în niciun fel utilizarea memoriei nginx.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.