Puncte:1

Fișiere statice Nginx stocate în cache din diferite foldere

drapel cn

Problema este că nginx nu afișează imagini și arată 404 care nu a fost găsit în unele foldere. Când elimin memoria cache din configurație, totul funcționează bine. Încercarea de a configura nginx pentru a stoca în cache fișierele statice cu această configurație

locație ~* \.(?:css|cur|js|jpg|jpeg|webp|gif|htc|ico|png|html|xml|otf|ttf|eot|woff|woff2|svg)$ {

                expiră 1 an;
                access_log off;
                add_header Cache-Control „public”;
                tcp_nodelay dezactivat;
                open_file_cache max=3000 inactiv=120s;
                open_file_cache_valid 45s;
                open_file_cache_min_uses 2;
                open_file_cache_errors dezactivat;
}
        # treceți scripturile PHP către serverul FastCGI
        locație ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
                include fastcgi_params;
                fastcgi_intercept_errors activat;
        }
  Locație / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

aici este jurnalul de erori

    2021/08/17 11:08:10 [eroare] 278986#278986: *3642 open() "/var/www/website/public/cache/medium/product/347/rC0dMIdOJIJNSmpKgm9pVqKVE59HKAl8SKu59HKAl2HF:jpg" fișier sau director), client: 95.85.108.178, server: ozan.com.tm, cerere: „GET /cache/medium/produ
ct/347/rC0dMIdOJIJNSmpKgm9pVqKVE59HKAl8SKujwxHF.jpg HTTP/2.0", gazdă: "www.website.tm", referitor: "https://www.website.tm/"

nginx afișează imagini din sursă: https://website.tm/storage/velocity/category_icon_path/77/5wiasmLf6hQGAsjsTV4jXsjnG0ELm5ak0rgpV7c2.png

nginx nu se afișează din: https://website.tm/cache/medium/product/353/jtTzvdT8ZmB6Lu7wFKj969Uzj0qqu1qRUt2CxEbz.jpg

CodingInTheUK avatar
drapel cn
Care este scopul stocării în cache a imaginilor? După cum ați spus, sunt conținut static. S-ar putea să greșesc aici și, dacă sunt, sper să vină cineva să mă corecteze, dar cred că trebuie doar să memorați în cache conținutul „dinamic”. Să presupunem că paginile dvs. web provin dintr-o bază de date, ați stoca în cache paginile care se schimbă rar pentru a preveni regenerarea paginii la fiecare încărcare, accelerând încărcarea. Imaginile din punctul meu de vedere sunt aceleași ca origine sau cache, cu excepția cazului în care generați imagini mai mici din mers. Atunci da, păstrează-le în cache.
CodingInTheUK avatar
drapel cn
Puteți găsi acest lucru util: https://serverfault.com/questions/861565/nginx-cache-images-generated-by-backend
Michael Hampton avatar
drapel cz
Într-adevăr, are foarte puțin rost să memorezi din nou în cache activele statice, deoarece acestea sunt deja stocate în cache pentru tine în memorie de către sistemul de operare, iar nginx doar scrie o a doua copie pe disc pe care trebuie să-și petreacă mai mult timp căutând.
Puncte:1
drapel us

Blocarea locației imaginii dvs. lipsește try_files directivă, care spune ce ar trebui să servească nginx pentru cererile care ajung în acea locație.

Adăuga

try_files $uri $uri/ =404;

la Locație bloc.

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.