Før vi snakker om web-caching, la oss snakke om CDN, et innholdsleveringsnettverk (CDN) er et distribuert nettverk bygget og dekket oppå et bærernettverk, bestående av edge-node-serverflåter over hele verden. CDN kan dele presset på opprinnelsesserveren, unngå nettverksbelastning, sikre distribusjon av nettsideinnhold i ulike regioner og scenarier, og forbedre hastigheten på ressurstilgang. CDN cacher opprinnelsesserverressurser til IDCs akselerasjonsnoder rundt om i verden, slik at når sluttbrukere ber om tilgang til og får opprinnelsesserverressurser, kan de få tak i de bufrede ressursene på nærliggende CDN-noder, forbedre ressurstilgangshastigheten og dele presset på opprinnelsesserverne.
Som vist i følgende figur:
Enkelt sagt, når brukere får tilgang til noen statiske ressurser, vil de ikke hente dem fra opprinnelsesserveren etter bruk av CDN, men vil finne den CDN-tjenesten som er nærmest nåværende bruker gjennom beregning og returdata.
Webcaching-verdier er en tjeneste mellom brukeren og opprinnelsesserveren, og Nginx tilbyr webcaching-muligheter nativt. Andre inkluderer Varnish, Squid og Cachewall, som er webcaching-proxyer (noen av dem tilbyr ikke bare webcaching).
Om dokumentasjonen for Nginx cache-konfigurasjon:Innloggingen med hyperkoblingen er synlig.
For det første, når vi først får tilgang til en ressurs gjennom en caching-tjeneste, er cache-tilstandenFRØKEN, vil be opprinnelsesserveren om å hente den, som vist i figuren nedenfor:
Når vi får tilgang til ressursen for andre gang, vil vi finne at ressursen er cachet og tilstanden erSLÅ, som vist i figuren nedenfor:
Hovedkonfigurasjonsparametrene til Nginx er som følger:
Hovedparametere:
proxy_cache_path/data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=180d use_temp_path=off;
●path: En obligatorisk parameter som spesifiserer lagringsstien for bufrede filer. ●levels: Definerer hierarkiet til cache-katalogen. Hvert lag kan representeres med 1 (opptil 16 valg, 0-f) eller 2 (opptil 256 valg, 00-ff), adskilt av : i midten. proxy_cache_path /data/nginx/cache; Dette betyr at alle cacher kun har én katalog, som /data/nginx/cache/d7b6e5978e3f042f52e875005925e51b proxy_cache_path /data/nginx/cache-nivåer=1:2; Det betyr at cachen er en katalog på andre nivå (med 16*256=4096 kataloger), som /data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b ● keys_zone: Obligatorisk parameter, definer navnet og størrelsen på det delte minneområdet, som brukes til å lagre metadata for cache-elementet (alle aktive nøkler og bufret datarelatert informasjon), slik at nginx raskt kan avgjøre om en forespørsel treffer eller bommer i cachen, 1m kan lagre 8000 nøkler, 10m kan lagre 80000 nøkler, 10m kan lagre 80000 nøkler, 10m kan lagre 80000 nøkler. ●inaktiv: Sletter cachefiler som ikke har blitt aksessert innen angist tid, standard i 10 minutter. ●max_size: Den øvre grensen for cachelagring settes, og hvis ikke spesifisert, vil all diskplass være brukt opp på det meste. ● use_temp_path: Plasser midlertidige filer direkte i cache-katalogen.
proxy_cachemy_cache; #指定用于页面缓存的共享内存 er sonenavnet definert av proxy_cache_path direktiv
proxy_cache_min_uses1; ## fastsetter caching-terskelen, hvor mange ganger forespørselen skal caches, og cacher ikke lavfrekvente forespørsler for å unngå sløsing.
proxy_cache_valid200 3m; #为不同的响应状态码设置不同的缓存时间 er dette en forespørsel med cache-statuskode på 200 og en cache-varighet på 3 minutter
proxy_cache_key$request_uri; #指定缓存文件的key为请求的URI
add_headerNginx-Cache-Status $upstream_cache_status; #把缓存状态设置为头部信息, svar klienten
proxy_passhttp://webservers; #设置代理转发的后端服务器的协议和地址
Bruk en Nginx caching-proxy for å ignorere spørringsstrenger
(Slutt)
|