Configurazione del caching e della compressione dei file statici in Nginx

Come velocizzare il tuo sito web e ridurre il carico del server.

Una corretta configurazione del caching e della compressione per i file statici (immagini, CSS, JavaScript, font, ecc.) è uno dei metodi più efficaci per migliorare la velocità di caricamento del sito, ridurre la larghezza di banda consumata e alleggerire il carico complessivo sul server.

In questa guida tratteremo due funzionalità fondamentali di Nginx:

  • La direttiva expires per il controllo della cache del browser
  • La compressione GZIP per i file di testo

1. Configurare la cache del browser con expires

La direttiva expires indica al browser per quanto tempo può conservare un file nella cache locale prima di interrogare nuovamente il server.

Apri il file di configurazione Nginx del tuo sito (di solito in /etc/nginx/conf.d/vhost.conf o simile) e aggiungi il seguente blocco location per i file statici:

location ~* \.(jpg|jpeg|png|gif|svg|webp|ico|css|js|woff|woff2|ttf|eot|mp4|webm|ogg|mp3|pdf|zip)$ {
    expires 30d;                    # Cache per 30 giorni
    add_header Cache-Control "public";
    access_log off;                 # Disabilita il logging per i file statici per risparmiare risorse
}

Valori expires consigliati:

  • Immagini, font e icone: 30d o 1y
  • CSS e JavaScript: 7d30d (usa periodi più brevi per i file aggiornati di frequente)
  • File modificati raramente: 1y

2. Abilitare la compressione GZIP

La compressione GZIP può ridurre drasticamente le dimensioni dei file di testo (HTML, CSS, JS, SVG, ecc.), migliorando la velocità di caricamento delle pagine. Aggiungi la configurazione seguente all'interno del tuo blocco server {}:

server {
    ...

    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;               # Livello di compressione (1–9)
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_min_length 256;
    gzip_types
        text/plain
        text/css
        text/xml
        text/javascript
        application/javascript
        application/json
        application/xml
        application/rss+xml
        image/svg+xml;
}

I nostri prodotti e servizi

Hosting WebServizi di hosting affidabili per siti web di qualsiasi dimensione.
Ordina
VPSInfrastruttura cloud flessibile con accesso root completo.
Ordina
Server DedicatiServer dedicati per le massime prestazioni.
Ordina

3. Applicare le impostazioni a tutti i siti (template)

Per applicare automaticamente queste ottimizzazioni a tutti i virtual host, crea un file template:

sudo nano /usr/local/ispmgr/etc/server.templ

Aggiungici il seguente contenuto:

location ~* \.(jpg|jpeg|png|gif|svg|webp|ico|css|js|woff|woff2|ttf|eot)$ {
    expires 30d;
    add_header Cache-Control "public";
    access_log off;
}

Dopo aver salvato, riavvia Nginx:

sudo systemctl restart nginx

Consigli utili

  • Testa sempre la configurazione dopo ogni modifica: sudo nginx -t
  • Combina expires con l'header Cache-Control: public per ottenere le prestazioni migliori.
  • Evita di impostare periodi di cache molto lunghi (ad esempio, oltre un anno) su file aggiornati di frequente come CSS o JavaScript — altrimenti gli utenti potrebbero visualizzare versioni obsolete per molto tempo.
  • Su VPS o server dedicati puoi spingere ulteriormente l'ottimizzazione con FastCGI cache, proxy_cache o regole avanzate di cache del browser.

Aiuto

Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!

Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci