Prima di parlare di web caching, parliamo di CDN, una rete di distribuzione di contenuti (CDN) è una rete distribuita costruita e coperta sopra una rete portatrice, composta da flotte di server edge node in tutto il mondo. La CDN può condividere la pressione sul server di origine, evitare la congestione della rete, garantire la distribuzione dei contenuti del sito in diverse regioni e scenari e migliorare la velocità di accesso alle risorse. CDN memorizza in cache le risorse del server di origine nei nodi di accelerazione di IDC in tutto il mondo, così che quando gli utenti finali richiedono accesso e ottengono risorse del server di origine, possano ottenere le risorse memorizzate nei nodi CDN vicini, migliorare la velocità di accesso alle risorse e condividere la pressione sui server di origine.
Come mostrato nella figura seguente:
In parole semplici, quando gli utenti accedono ad alcune risorse statiche, non le otterranno dal server di origine dopo aver usato la CDN, ma troveranno il servizio CDN più vicino all'utente corrente tramite calcolo e restituzione dei dati.
I valori di cache web sono un servizio tra l'utente e il server di origine, e Nginx fornisce funzionalità di cache web nativamente. Altri includono Varnish, Squid e Cachewall, che sono proxy di cache web (alcuni dei quali non forniscono solo cache web).
Informazioni sulla documentazione della configurazione della cache Nginx:Il login del link ipertestuale è visibile.
Innanzitutto, quando accediamo per la prima volta a una risorsa tramite un servizio di cache, lo stato della cache èSIGNORINA, richiederà al server Origin di estrarla, come mostrato nella figura sottostante:
Quando accediamo alla risorsa per la seconda volta, scopriremo che la risorsa è stata memorizzata nella cache e che lo stato èCOLPIRE, come mostrato nella figura sottostante:
I principali parametri di configurazione di Nginx sono i seguenti:
Parametri principali:
proxy_cache_path/data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=180d use_temp_path=off;
●path: Un parametro obbligatorio che specifica il percorso di archiviazione dei file memorizzati nella cache. ●levels: Definisce la gerarchia della directory della cache. Ogni livello può essere rappresentato da 1 (fino a 16 scelte, 0-f) o 2 (fino a 256 scelte, 00-ff), separati da : al centro. proxy_cache_path /data/nginx/cache; Questo significa che tutte le cache hanno una sola directory, come /data/nginx/cache/d7b6e5978e3f042f52e875005925e51b proxy_cache_path /data/nginx/cache levels=1:2; Significa che la cache è una directory di secondo livello (con 16*256=4096 directory), come /data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b ● keys_zone: parametro obbligatorio, definire il nome e la dimensione dell'area di memoria condivisa, che viene utilizzata per memorizzare i metadati dell'elemento della cache (tutte le chiavi attive e le informazioni relative ai dati cache), così che nginx possa determinare rapidamente se una richiesta colpisce o non la cache, 1m può memorizzare 8000 chiavi, 10m può memorizzare 80000 chiavi, 10m può memorizzare 80000 chiavi. ●inattivo: Elimina i file di cache che non sono stati consultati entro il tempo specificato, impostazione predefinita per 10 minuti. ●max_size: Il limite superiore di archiviazione della cache è impostato e, se non specificato, tutto lo spazio su disco sarà utilizzato al massimo. ● use_temp_path: Posiziona i file temporanei direttamente nella cartella della cache.
proxy_cachemy_cache; #指定用于页面缓存的共享内存, il nome della zona è definito da proxy_cache_path direttiva
proxy_cache_min_uses1; ## stabilisce la soglia di cache, quante volte la richiesta viene memorizzata nella cache, e non memorizza richieste a bassa frequenza per evitare sprechi.
proxy_cache_valid200 3m; #为不同的响应状态码设置不同的缓存时间, si tratta di una richiesta con codice di stato della cache di 200 e durata della cache di 3 minuti
proxy_cache_key$request_uri; #指定缓存文件的key为请求的URI
add_headerNginx-cache-status $upstream_cache_status; #把缓存状态设置为头部信息, rispondi al cliente
proxy_passhttp://webservers; #设置代理转发的后端服务器的协议和地址
Usa un proxy di cache Nginx per ignorare le query strings
(Fine)
|