Innan vi pratar om web caching, låt oss prata om CDN, ett content delivery network (CDN) som är ett distribuerat nätverk byggt och täckt ovanpå ett bearer-nätverk, bestående av edge-nod-serverflottor över hela världen. CDN kan dela trycket på ursprungsservern, undvika nätverksträngsel, säkerställa distribution av webbplatsinnehåll i olika regioner och scenarier samt förbättra hastigheten på resursåtkomst. CDN cachar ursprungsserverresurser till IDC:s accelerationsnoder runt om i världen, så att när slutanvändare begär åtkomst till och får ursprungsserverresurser kan de få tillgång till de cachade resurserna på närliggande CDN-noder, förbättra resursåtkomsthastigheten och dela pressen på ursprungsservrarna.
Som visas i följande figur:
Enkelt uttryckt, när användare använder vissa statiska resurser kommer de inte att hämta dem från ursprungsservern efter att ha använt CDN, utan kommer att hitta den CDN-tjänst som ligger närmast den aktuella användaren genom beräkning och återgivning.
Webbcachevärden är en tjänst mellan användaren och ursprungsservern, och Nginx tillhandahåller webbcachefunktioner inbyggt. Andra inkluderar Varnish, Squid och Cachewall, som är webbcaching-proxyer (vissa av dem erbjuder inte bara web caching).
Om dokumentationen för Nginx cachekonfiguration:Inloggningen med hyperlänken är synlig.
För det första, när vi först får tillgång till en resurs via en cache-tjänst, är cachetillståndetFRÖKEN, kommer att begära ursprungsservern att hämta den, som visas i figuren nedan:
När vi får tillgång till resursen för andra gången kommer vi att upptäcka att resursen har cachas och tillståndet ärTRÄFF, som visas i figuren nedan:
De huvudsakliga konfigurationsparametrarna för Nginx är följande:
Huvudparametrar:
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 specificerar lagringspath för cachade filer. ●levels: Definierar hierarkin i cachekatalogen. Varje lager kan representeras av 1 (upp till 16 val, 0-f) eller 2 (upp till 256 val, 00-ff), separerat av : i mitten. proxy_cache_path /data/nginx/cache; Detta innebär att alla cacher bara har en katalog, såsom /data/nginx/cache/d7b6e5978e3f042f52e875005925e51b proxy_cache_path /data/nginx/cache-nivåer=1:2; Det betyder att cachen är en katalog på andra nivån (med 16*256=4096 kataloger), såsom /data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b ● keys_zone: Obligatorisk parameter, definiera namnet och storleken på det delade minnesområdet, som används för att lagra metadata för cacheobjektet (alla aktiva nycklar och cachad datarelaterad information), så att nginx snabbt kan avgöra om en förfrågan träffar eller missar cachen, 1m kan lagra 8000 nycklar, 10m kan lagra 80000 nycklar, 10m kan lagra 80000 nycklar. ●inaktiv: Raderar cachefiler som inte har nåts inom angiven tid, standard i 10 minuter. ●max_size: Den övre gränsen för cachelagring sätts, och om det inte specificeras kommer allt diskutrymme att vara uppbrukat som mest. ● use_temp_path: Placera temporära filer direkt i cachekatalogen.
proxy_cachemy_cache; #指定用于页面缓存的共享内存 definieras zonnamnet av proxy_cache_path direktiv
proxy_cache_min_uses1; ## anger caching-tröskeln, hur många gånger förfrågan ska cachas, och cachar inte lågfrekventa förfrågningar för att undvika slöseri.
proxy_cache_valid200 3m; #为不同的响应状态码设置不同的缓存时间 är detta en förfrågan med cachestatuskoden 200 och en cachevaraktighet på 3 minuter
proxy_cache_key$request_uri; #指定缓存文件的key为请求的URI
add_headerNginx-Cache-Status $upstream_cache_status; #把缓存状态设置为头部信息, svara klienten
proxy_passhttp://webservers; #设置代理转发的后端服务器的协议和地址
Använd en Nginx-cacheproxy för att ignorera frågesträngar
(Slut)
|