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 suoff
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!