NGINX Config Rewind: Serverion rilancia l'arte perduta della sintonizzazione della cache proxy

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...

Nginx

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_zona per 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_proxy per 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:

  1. Usa il percorso_cache_proxy direttiva dall'esempio sopra e aggiungi proxy_cache mia_cache alla tua configurazione.
  2. Abilita la memorizzazione nella cache all'interno del pertinente server o Posizione bloccare:
    proxy_cache mia_cache; 
  3. Facoltativamente, è possibile includere una qualsiasi delle direttive di ottimizzazione menzionate in precedenza per migliorare le prestazioni.
  4. 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_zona può 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.

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

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

it_IT