Puncte:4

Adăugarea blocului de locație la fișierele cache face ca aceste fișiere să revină 404 în Nginx

drapel in

Vreau să pun în cache câteva fișiere statice folosind Nginx. Dar cumva nu o pot face să funcționeze.

Acesta este al meu nginx.conf:

utilizator www-date;
worker_proceses auto;
pid /run/nginx.pid;
includ /etc/nginx/modules-enabled/*.conf;

evenimente {
    conexiuni_muncitor 768;
    #multi_accept on;
}


http {

    #GZIP
    gzip on;
    gzip_vary on;
    gzip_proxied orice;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_versiunea 1.1;
    gzip_min_length 256;
    aplicație gzip_types/aplicație javascript/aplicație json/ld+aplicație json/font xml/font eot/font otf/text ttf/text css/text javascript/text simplu/xml;

    # SERVERE
    Server {
            asculta 80;

        nume_server example.com;
        dacă ($http_host ~* ^www\.(.*)$ )
        {
            returnează 301 https://$1$request_uri;
        }

        returnează 301 https://$http_host$request_uri;
    }
    Server {
        asculta 443 ssl;

        dacă ($http_host ~* ^www\.(.*)$ )
        {
            returnează 301 $scheme://$1$request_uri;
        }


        #SSL
        ssl_certificate /root/.acme.sh/example.com/fullchain.cer;
        ssl_certificate_key /root/.acme.sh/example.com/example.com.key;

        nume_server example.com;

        # Transferați tot traficul către aplicația mea web
        Locație / {
            proxy_set_header Gazdă $gazdă;
            proxy_pass http://localhost:8080;
        }

        #Browser cache
        locație ~* \.(js|css)$ {
            expiră 180d;
            add_header Pragma „public”;
            add_header Cache-Control „public”;
        }
        locație ~* \.(jpg|jpeg|png|webp|woff|woff2|ttf)$ {
            expiră 365d;
            add_header Pragma „public”;
            add_header Cache-Control „public”;
        }

    }
}

Problema se bazează în partea „Browser caching”. Când activez acest bloc de cod, site-ul meu se încarcă, dar toate fișierele css, fișierele javascript și imaginile returnează un 404. Este ca și cum acele fișiere îmi ignoră Locație /.

Am reușit să rezolv această problemă prin copiere/lipire

proxy_set_header Gazdă $gazdă;
proxy_pass http://localhost:8080;

în toate mele Locație-blocuri, dar asta nu este chiar elegant și de fapt a făcut ca site-ul meu să se simtă mult mai lent...

Am încercat și eu să le mut pe cele două Locație-blocuri pentru memorarea în cache a browserului în bloc Locație \ astfel că acesta din urmă ar acționa ca „părinte”. Dar asta nu a întâmpinat comportamentul imaginilor etc., care revin 404.

Cum aș configura stocarea în cache a fișierelor statice în Nginx?

drapel us
Am dat deja un răspuns la întrebarea ta inițială.

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.