NGINX Config Rewind: Serverion rilancia l'arte perduta della sintonizzazione della cache proxy
Vuoi siti web più veloci e carichi di lavoro ridotti sul server? Il caching proxy NGINX è la soluzione che fa per te. Memorizzando i contenuti richiesti di frequente, velocizza la distribuzione e riduce il carico sui server di origine. Serverion condivide suggerimenti pratici per ottimizzare la configurazione della cache per ottenere prestazioni e affidabilità migliori.
Punti chiave:
- Fornire contenuti obsoleti: Utilizza le risposte memorizzate nella cache durante i periodi di inattività del server con
proxy_cache_use_stale. - Aggiornamenti di base: Aggiorna le voci della cache senza interrompere l'utilizzo da parte degli utenti
aggiornamento_sfondo_cache_proxy. - Prevenire i sovraccarichi: Evita di sovraccaricare il tuo server di origine con
blocco_cache_proxy.
Esempio di configurazione:
proxy_cache_path /var/cache/nginx livelli=1:2 chiavi_zona=mia_cache:10m dimensione_massima=10g inattivo=60m usa_temp_path=spento; proxy_cache mia_cache; proxy_cache_use_stale aggiornamento; proxy_cache_background_update acceso; proxy_cache_lock acceso; Queste impostazioni garantiscono risposte rapide, un utilizzo efficiente delle risorse e una distribuzione affidabile dei contenuti. Che tu stia eseguendo un piccolo VPS o un server ad alto traffico, queste tecniche possono aiutarti a sfruttare al meglio la memorizzazione nella cache proxy di NGINX.
NGINX: memorizzazione nella cache dei contenuti con proxy inverso (super veloce...

Fondamenti del caching proxy NGINX
Le tecniche di ottimizzazione della cache di Serverion si basano sui principi fondamentali del caching proxy di NGINX, che prevede l'archiviazione e la distribuzione di copie del contenuto originale. Il sistema utilizza tre componenti principali: il percorso della cache, una zona di memoria condivisa e un gestore della cache che rimuove i file scaduti o utilizzati meno di recente (LRU) quando la cache raggiunge il limite massimo.
Operazione cache proxy NGINX
Quando NGINX elabora una richiesta, controlla innanzitutto la sua zona di memoria condivisa per verificare se il contenuto richiesto è già memorizzato nella cache. Questa ricerca in memoria consente di determinare rapidamente i punti di accesso o i punti di mancato accesso alla cache. A titolo di riferimento, una zona di chiavi da 1 MB può contenere circa 8.000 chiavi di cache[1].
Ecco come funziona il processo di memorizzazione nella cache:
- NGINX esegue l'hashing della richiesta per creare una chiave cache univoca.
- Controlla la zona di memoria condivisa per quella chiave.
- Se la chiave viene trovata (cache hit), il contenuto viene servito direttamente dalla cache.
- Se la chiave non viene trovata (cache miss), il contenuto viene recuperato dal server di origine e memorizzato nella cache per un utilizzo futuro.
Serverion ottimizza le prestazioni garantendo ricerche efficienti delle chiavi e organizzando l'archiviazione della cache mediante gerarchie di directory.
Elementi della cache principale
| Direttiva | Scopo | Impatto |
|---|---|---|
percorso_cache_proxy | Specifica la posizione di archiviazione della cache | Determina dove e come il contenuto viene memorizzato nella cache |
proxy_cache | Attiva la memorizzazione nella cache per richieste specifiche | Abilita la memorizzazione nella cache all'interno di un blocco di posizione |
chiavi_zona | Assegna memoria condivisa per le chiavi della cache | Consente ricerche rapide in memoria |
inattivo | Definisce per quanto tempo gli elementi non utilizzati rimangono nella cache | Controlla la frequenza di aggiornamento della cache e i tempi di espulsione |
Per massimizzare le prestazioni, utilizzare un sistema a due livelli livelli gerarchia per prevenire rallentamenti del file system. Inoltre, imposta usa_temp_path=off per scrivere i file memorizzati nella cache direttamente nella loro posizione finale, riducendo il sovraccarico di I/O.
NGINX rispetta le direttive della cache del server di origine. Memorizza solo le risposte che includono un Scade intestazione con una data futura o una Cache-Control intestazione con un età massima valore maggiore di zero.
Ora puoi applicare questi principi nella configurazione della cache proxy NGINX.
[1] Documentazione NGINX: una zona chiavi da 1 MB memorizza i dati per circa 8.000 chiavi.
Guida alla configurazione della cache proxy NGINX
Scopri come configurare e ottimizzare passo dopo passo la memorizzazione nella cache del proxy NGINX.
Impostazioni dei parametri della cache
La base della configurazione della cache proxy NGINX è la percorso_cache_proxy direttiva. Ecco un esempio di configurazione:
proxy_cache_path /var/cache/nginx livelli=1:2 keys_zone=my_cache:10m dimensione_massima=10g inattivo=60m use_temp_path=off; Questa configurazione crea una struttura di directory a due livelli, alloca 10 MB per l' chiavi_zona (sufficiente per circa 80.000 chiavi), imposta una dimensione massima della cache di 10 GB e definisce un timeout di inattività di 60 minuti.
Per un controllo migliore, è possibile includere anche queste direttive facoltative:
| Direttiva | Scopo |
|---|---|
proxy_cache_use_stale | Fornisce contenuti obsoleti se i server di origine non sono disponibili |
proxy_cache_revalidate | Utilizza richieste GET condizionali per verificare se il contenuto è ancora valido |
aggiornamento_sfondo_cache_proxy | Aggiorna i contenuti obsoleti in background |
blocco_cache_proxy | Impedisce a più richieste di sovraccaricare il server di origine |
Dopo aver definito questi parametri, alloca memoria e spazio su disco in base al traffico previsto.
Gestione delle dimensioni della cache
Per dimensionare efficacemente la cache, considera sia l'utilizzo della memoria che quello del disco. Ecco come fare:
- Dimensionamento della zona di memoria Assegnare memoria per il
chiavi_zonaper soddisfare le tue esigenze di caching:keys_zone=enterprise_cache:100m; # Supporta circa 800.000 chiavi di cache - Allocazione dello spazio su disco Regolare il
percorso_cache_proxyper specificare lo spazio massimo su disco:proxy_cache_path /var/cache/nginx livelli=1:2 keys_zone=enterprise_cache:100m dimensione massima=10g inattivo=24h use_temp_path=off;
Una volta impostati questi parametri, sei pronto per inizializzare e abilitare la cache.
Inizializzazione della cache
Dopo aver perfezionato i parametri e le dimensioni, segui questi passaggi per attivare la memorizzazione nella cache:
- Usa il
percorso_cache_proxydirettiva dall'esempio sopra e aggiungiproxy_cache mia_cachealla tua configurazione. - Abilita la memorizzazione nella cache all'interno del pertinente
serveroPosizionebloccare:proxy_cache mia_cache; - Facoltativamente, è possibile includere una qualsiasi delle direttive di ottimizzazione menzionate in precedenza per migliorare le prestazioni.
- Monitora lo stato della cache aggiungendo un'intestazione personalizzata:
add_header X-Cache-Status $upstream_cache_status;
Nota: Secondo la documentazione NGINX, 1 MB
chiavi_zonapuò memorizzare circa 8.000 chiavi.
Questa configurazione garantisce che la cache sia pronta a gestire il traffico in modo efficiente, mantenendo al contempo la flessibilità necessaria per eventuali modifiche.
sbb-itb-59e1987
Gestione della cache NGINX aziendale
Una volta impostati il percorso e i parametri della cache, è il momento di ampliare la configurazione per gestire in modo efficace il traffico a livello aziendale.
Ottimizzazione del tasso di hit della cache
Per migliorare l'efficienza della cache, abilita funzionalità come le richieste condizionali e gli aggiornamenti in background:
proxy_cache_revalidate acceso; proxy_cache_background_update acceso; proxy_cache_use_stale aggiornamento; Evita di sovraccaricare il tuo server di origine configurando queste impostazioni:
proxy_cache_lock acceso; proxy_cache_lock_timeout 5s; proxy_cache_min_uses 2; Negli ambienti ad alto traffico, distribuire il carico della cache su più dispositivi di archiviazione per migliorare le prestazioni:
split_clients "${request_uri}" $disk { 20% "/data/cache1"; 20% "/data/cache2"; 20% "/data/cache3"; 20% "/data/cache4"; * "/data/cache5"; } Una volta ottimizzata la cache per le prestazioni, concentrati sulla sua protezione per la gestione di contenuti sensibili.
Controlli di sicurezza della cache
Per proteggere le richieste sensibili, ignora la memorizzazione nella cache e personalizza le chiavi della cache in base alle tue esigenze:
proxy_cache_bypass $http_pragma; proxy_cache_bypass $cookie_nocache; proxy_ignore_headers Controllo cache; Per contenuti personalizzati o richieste basate sui cookie, modifica la chiave della cache e i metodi supportati:
proxy_cache_key "$host$request_uri$cookie_user"; proxy_cache_methods OTTIENI HEAD POST; Dopo aver protetto la cache, assicurati di monitorarne costantemente le prestazioni.
Monitoraggio delle prestazioni della cache
Monitora il comportamento della cache utilizzando le definizioni di stato per ottimizzare la tua configurazione:
| Stato | Definizione |
|---|---|
| AGGIORNAMENTO | Contenuto obsoleto fornito mentre è in corso un aggiornamento |
| RIVALIDATO | Il contenuto memorizzato nella cache è stato convalidato nuovamente con il server di origine |
Analizzare il Stato della cache X metriche regolarmente e adeguare le direttive per allinearle ai modelli di traffico, al fine di ottenere risultati ottimali.
ServerionConfigurazione della cache NGINX di

Serverion personalizza le impostazioni della cache NGINX in base alle esigenze specifiche di ciascun carico di lavoro. Utilizzando le direttive principali, ottimizza le configurazioni della cache in modo diverso per VPS e server dedicati.
Percorsi della cache per carico di lavoro
Carichi di lavoro VPS
Per le configurazioni VPS, questa configurazione garantisce un equilibrio tra efficienza della memoria e tempi di risposta rapidi:
proxy_cache_path /data/nginx/cache livelli=1:2 keys_zone=SERVERCACHE:10m dimensione_massima=10g inattivo=60m use_temp_path=off; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; IL chiavi_zona la dimensione è impostata per contenere circa 80.000 chiavi.
Server dedicati
Per le applicazioni ad alto traffico su server dedicati, Serverion utilizza un sistema di caching distribuito su più SSD:
proxy_cache_path /cache1 livelli=1:2 zona_chiavi=cache1:10m; proxy_cache_path /cache2 livelli=1:2 zona_chiavi=cache2:10m; proxy_cache_path /cache3 livelli=1:2 zona_chiavi=cache3:10m; split_clients "${richiesta_uri}" $cachezone { 33% "cache1"; 33% "cache2"; * "cache3"; } Questa configurazione distribuisce le scritture della cache in modo uniforme su tre SSD utilizzando clienti divisi direttiva.
I valori specifici per queste configurazioni sono ricavati dalla Cache Parameter Reference Table di Serverion.
Impostazioni dell'infrastruttura
Per migliorare ulteriormente le prestazioni, le impostazioni del worker NGINX sono state modificate per gestire in modo efficiente l'input e l'output della cache:
worker_processes auto; worker_connections 1024; worker_cpu_affinity 0-3; # allinea i worker con i core della CPU Queste modifiche garantiscono che le risposte memorizzate nella cache vengano fornite con la massima efficienza.
Riepilogo: risultati dell'ottimizzazione della cache NGINX
Serverion ha migliorato le prestazioni e l'affidabilità in tutti i suoi sistemi di hosting Attraverso aggiustamenti dettagliati della cache proxy. Affinando la gerarchia della cache, gestendo le impostazioni di aggiornamento e ottimizzando l'elaborazione delle intestazioni, hanno mantenuto una distribuzione dei contenuti fluida. In tempo reale X-Proxy-Cache le metriche hanno consentito ai team IT di adattare efficacemente le impostazioni della cache, ottenendo tempi di risposta più rapidi, un minore carico sui server di origine e una migliore disponibilità per le operazioni aziendali.
Post del blog correlati
- Padroneggiare le configurazioni Nginx per prestazioni ottimali del server Web
- Le 7 migliori tecniche di caching dei dati per carichi di lavoro di intelligenza artificiale
- Come la memorizzazione nella cache dei dati aumenta le prestazioni del modello AI
- Configurazione NGINX oltre le basi: il punto di vista di Serverion sui segreti dello scripting Lua