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?