Come impostare la cache Nginx FastCGI su Ubuntu

Nginx FastCGI Cache migliora le prestazioni del tuo sito web riducendo il carico sul tuo server Ubuntu. È particolarmente efficace per i contenuti dinamici, consentendo a Nginx di servire direttamente i contenuti memorizzati nella cache senza utilizzare processori PHP. Ciò accelera i tempi di risposta e riduce l'utilizzo delle risorse. Ecco le caratteristiche principali e i vantaggi di Nginx FastCGI Cache per la tua infrastruttura web:

  • Distribuzione efficiente dei contenuti: Nginx FastCGI Cache memorizza l'output di contenuti dinamici, consentendo un accesso e una distribuzione più rapidi.
  • Carico del server ridotto: Servire il contenuto memorizzato nella cache riduce al minimo il numero di chiamate PHP, alleggerendo il carico del server.
  • Scalabilità: Nginx FastCGI Cache aiuta a gestire l'aumento del traffico senza compromettere la velocità man mano che il tuo sito web cresce.
  • Caching personalizzabile: Questa opzione offre flessibilità nell'impostazione della scadenza, del bypass e delle condizioni di aggiornamento della cache in base alle proprie esigenze.
  • Esperienza utente migliorata: Tempi di caricamento del sito web più rapidi migliorano l’esperienza dell’utente, incidendo positivamente sulla fidelizzazione dei visitatori e sul posizionamento SEO.
  • Ottimizzazione delle risorse: Ottimizza l'utilizzo delle risorse del server, portando a una gestione più efficiente delle richieste simultanee.
  • Debug facile: Fornisce meccanismi semplici per eseguire il debug e convalidare il contenuto memorizzato nella cache, garantendo un funzionamento regolare.
  • Compatibilità: Funziona perfettamente con le piattaforme CMS più diffuse, migliorandone le prestazioni senza una configurazione estesa.

Mentre passiamo alle istruzioni tecniche, tieni presente che l'implementazione di Nginx FastCGI Cache è un modo strategico per migliorare l'efficienza del tuo sito e la soddisfazione degli utenti. Iniziamo a migliorare le prestazioni del tuo sito web con Nginx FastCGI Cache.

Configura la cache Nginx FastCGI

Modifica il file di configurazione Nginx per la cache FastCGI

Apri il file di configurazione

Per prima cosa è necessario aprire il file nginx.conf file. Utilizzeremo l'editor di testo nano, ma puoi utilizzare qualsiasi editor di testo con cui ti senti a tuo agio. Inserisci questo comando:

sudo nano /etc/nginx/nginx.conf

Configura i parametri FastCGI

All'interno del file, individua il blocco HTTP e aggiungi le seguenti righe:

fastcgi_cache_path /var/nginx/fastcgi_cache levels=1:2 keys_zone=fcgicache:150m max_size=20g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

Dopo aver inserito le righe, premere CTRL + O, tipo Y, quindi premere CTRL + X uscire.

Comprendere i parametri FastCGI

  • fastcgi_cache_path: questo parametro imposta la posizione in cui archiviare la cache FastCGI (/var/nginx/fastcgi_cache). È essenziale in quanto determina dove risiederà il contenuto memorizzato nella cache.
  • levels=1:2: crea una gerarchia di directory a due livelli nella posizione della cache. Questo design aiuta a distribuire i file su due directory, il che, a sua volta, riduce il rischio di colli di bottiglia I/O del disco.
  • keys_zone: Specifica il nome della zona di memoria condivisa (fcgicache) e la sua dimensione (150M). La zona di memoria condivisa è fondamentale per archiviare chiavi di cache e metadati.
  • max_size: Definisce la dimensione massima della cache (in questo esempio, 20GB). Quando viene raggiunto questo limite, i file più vecchi verranno rimossi per fare spazio a quelli nuovi.
  • inactive: specifica la durata dopo la quale i dati a cui non è stato effettuato l'accesso verranno rimossi dalla cache. In questo esempio è impostato su 60 minuti.
  • use_temp_path: Impostazione su off ordina a Nginx di scrivere i file direttamente nella cartella cache specificata, ignorando l'uso di un'area di archiviazione temporanea.
  • fastcgi_cache_key: viene utilizzato per definire la chiave per la ricerca nella cache. Nginx crea un hash MD5 di questa chiave da utilizzare come nome dei file di cache.

Configura il blocco server Nginx per la cache FastCGI

Modifica file di blocco del server

Successivamente, devi modificare il file di blocco del server. Per questo esempio, supponiamo che il file sia denominato example.com.conf. Aprilo con il seguente comando:

sudo nano /etc/nginx/sites-available/example.com.conf

Inserisci le direttive della cache FastCGI

Supponendo che tu abbia installato LEMP, inserisci le seguenti righe all'interno del blocco location per i file PHP:

fastcgi_cache fcgicache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;

Comprendere le direttive della cache FastCGI

  • fastcgi_cache: abilita la memorizzazione nella cache e specifica la zona di memoria condivisa definita in precedenza.
  • fastcgi_cache_valid: definisce la durata della cache per codici di stato HTTP specifici.
  • fastcgi_cache_use_stale: imposta le condizioni in base alle quali Nginx può utilizzare una risposta memorizzata nella cache obsoleta.
  • fastcgi_cache_min_uses: specifica la frequenza con cui una risposta deve essere richiesta prima che venga memorizzata nella cache.
  • fastcgi_cache_lock: Garantisce che solo una richiesta alla volta popola un nuovo elemento della cache, impedendo una "fuga precipitosa della cache".
  • add_header: aggiunge un'intestazione personalizzata (X-FastCGI-Cache) alla risposta HTTP, indicando se la risposta è stata fornita dalla cache.

Configura l'eliminazione della cache FastCGI su Nginx

Configurazione dell'eliminazione della cache

L'eliminazione della cache consente di rimuovere il contenuto dalla cache prima che scada. Per configurare l'eliminazione della cache, crea una direttiva di eliminazione della cache inserendo le seguenti righe nel file di blocco del server:

location ~ /purge(/.*) {
    # Uncomment the following two lines to allow purge only from the webserver
    allow 127.0.0.1;
    deny all;
    fastcgi_cache_purge fcgicache "$scheme$request_method$host$1";
}

Premere CTRL + O, tipo Y, quindi premere CTRL + X per uscire dall'editor di testo.

Approccio alternativo per i problemi di eliminazione della cache

Se riscontri problemi con l'eliminazione della cache, puoi invece modificare il tempo di scadenza della cache. Per i siti Web a traffico medio-alto, impostare una frequenza di scadenza inferiore, ad esempio 2 ore di inattività e 4 ore per la scadenza complessiva, è spesso più efficiente.

Testare e riavviare il server Nginx

Testare la configurazione

È essenziale convalidare la configurazione di Nginx per evitare errori di sintassi o configurazioni errate. Utilizzare il seguente comando:

sudo nginx -t

Dovresti vedere il seguente output se tutto è corretto:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Riavvia il server Nginx

Infine, riavvia il server Nginx per applicare le modifiche apportate:

sudo systemctl restart nginx

Crea e ottimizza la directory della cache Nginx FastCGI

Crea la directory della cache FastCGI

Creiamo ora la directory in cui Nginx memorizzerà i file della cache. Questo percorso è stato specificato in precedenza nel file nginx.conf file:

sudo mkdir -p /var/nginx/fastcgi_cache

Ottimizza la directory della cache con tmpfs (facoltativo)

Se il tuo sistema ha RAM sufficiente, puoi scegliere di utilizzare tmpfs per archiviare la cache in memoria. Ciò può comportare tempi di accesso più rapidi rispetto all'archiviazione su disco. Tuttavia, fai attenzione, poiché l'archiviazione nella RAM può consumare notevoli risorse di memoria. Ecco come puoi montare la directory della cache come tmpfs:

Modificare /etc/fstab file:

sudo nano /etc/fstab

Aggiungi la seguente riga alla fine del file:

tmpfs   /var/nginx/fastcgi_cache   tmpfs   defaults,size=512M   0 0

Ciò alloca 512 MB di RAM per la cache. È possibile regolare le dimensioni di conseguenza in base alle risorse del sistema.

Montare il tmpfs:

sudo mount -a

Questa configurazione garantisce che la cache FastCGI sia archiviata in memoria, offrendo prestazioni più veloci a scapito dell'utilizzo della RAM.

Convalida la funzionalità della cache Nginx FastCGI

Prova la cache FastCGI con curl

Puoi verificare che FastCGI Cache funzioni correttamente utilizzando il file curl comando. A seconda delle impostazioni della cache, potrebbe essere necessario eseguire il comando più volte prima di visualizzare un riscontro nella cache:

curl -I http://www.your-domain.com

Se non hai curl installato, puoi installarlo con:

sudo apt install curl -y

Nell'output, cerca il file X-FastCGI-Cache: HIT intestazione:

~$ curl -I https://www.example.com/
HTTP/1.1 200 OK
...
X-FastCGI-Cache: HIT
...

Ciò indica che la richiesta è stata servita dalla cache.

Configura le esclusioni della cache

Gli elementi del sito Web come le pagine di amministrazione di WordPress, le sezioni dei commenti e le mappe dei siti non devono essere memorizzati nella cache. Per configurare Nginx in modo che non li memorizzi nella cache, aggiungi il seguente codice sopra il file location (~\.php$) riga nel file di blocco del server:

# Cache by default
set $skip_cache 0;

# Don't cache URIs containing the following
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|index.php|/.sitemap..(xml|xsl)") {
    set $skip_cache 1;
}

# Don't cache for logged-in users or comment authors
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# POST requests and URIs with a query string should bypass the cache
if ($request_method = POST) {
    set $skip_cache 1;
}

if ($query_string != "") {
    set $skip_cache 1;
}

Debug delle esclusioni della cache (facoltativo)

Se desideri aggiungere note a scopo di debug, puoi includere una nota personalizzata sotto ciascuna set $skip_cache 1; dichiarazione come questa:

set $skip_reason "your custom note";

Ciò può essere utile per comprendere il motivo per cui determinati contenuti non vengono memorizzati nella cache durante la risoluzione dei problemi.

Dopo aver effettuato queste configurazioni, assicurati di testare la configurazione e riavviare Nginx:

sudo nginx -t
sudo systemctl restart nginx

Migliori pratiche e considerazioni con Nginx FastCGI Cache

Sebbene la memorizzazione nella cache FastCGI possa offrire vantaggi significativi in ​​termini di prestazioni, è essenziale garantire che la configurazione sia ottimizzata per il caso d'uso specifico e le risorse del server:

  • Valuta la quantità di RAM disponibile prima di optare per tmpfs per la memorizzazione nella cache. Assicurati che il tuo server disponga di memoria sufficiente per altri processi critici.
  • Personalizza le esclusioni della cache in base alla tua applicazione. Gli esempi forniti sono specifici per WordPress, ma potresti aver bisogno di esclusioni diverse per altri tipi di applicazioni.
  • Monitorare regolarmente l'utilizzo e le prestazioni della cache. Se la cache consuma troppo spazio su disco o non migliora le prestazioni come previsto, valuta la possibilità di modificare di conseguenza il percorso, le dimensioni o le impostazioni della cache.

Conclusione

Beh, il gioco è fatto! Abbiamo seguito i passaggi per installare Nginx FastCGI Cache sul tuo server Ubuntu, offrendo un miglioramento delle prestazioni del tuo sito web gestendo in modo efficiente i contenuti dinamici. Ricorda, mantenere le impostazioni della cache per soddisfare le esigenze del tuo sito è la chiave per massimizzare i vantaggi. Non esitare a modificare le impostazioni per trovare il punto giusto. Che tu sia un professionista esperto o un principiante nella gestione dei server, speriamo che questa guida ti sia stata utile per ottimizzare la tua presenza sul web. Mantieni le cose semplici, mantieni la coerenza e brindiamo a un'esperienza del sito Web più rapida e fluida per te e i tuoi visitatori!

Joshua James
Seguimi
Ultimi post di Joshua James (vedi tutto)

Lascia un commento