A gyorsítótárazás kulcsfontosságú technika a modern webfejlesztés és az infrastruktúra-kezelés területén, különösen a nagy forgalmú webhelyek kezelése esetén. A lakk, a nagyteljesítményű HTTP gyorsító, hatékony módszert kínál a gyorsítótárazási stratégiák végrehajtására a lakkkonfigurációs nyelvén (VCL). Lakk szállítójaként izgatottan örülök, hogy megoszthatom néhány betekintést a hatékony gyorsítótárazási stratégiák végrehajtására a lakk VCL -ben.


A lakk és a VCL alapjainak megértése
Mielőtt belemerülne a gyorsítótárazási stratégiákba, elengedhetetlen megérteni, hogy mi a lakk és a VCL. A lakk egy nyílt forráskódú webalkalmazás gyorsítója, amelyet gyakran fordított proxy gyorsítótárnak neveznek. Az ügyfél és az Origin szerver között helyezkedik el, a kéréseket elfogva és a gyorsítótárazott tartalom kiszolgálása. Ez jelentősen csökkenti az Origin szerver terhelését, és javítja a felhasználók válaszidejét.
A VCL viszont egy domain-specifikus nyelv, amelyet a lakk konfigurálására használnak. Ez lehetővé teszi annak meghatározását, hogy a lakknak hogyan kell kezelnie a bejövő kéréseket, gyorsítótár -tartalmat és kölcsönhatásba lép az Origin Serverrel. A VCL szkripteket alprogramokba rendezik, amelyek mindegyike felelős a kérés -feldolgozási csővezeték egy adott szakaszáért.
Alapvető gyorsítótárazási stratégia beállítása
A lakkban a legegyszerűbb gyorsítótárazási stratégia az, hogy gyorsítótárazatot kapjon az összes olyan kérés, amelynek gyorsítható válasza van az Origin Server -től. Itt van egy alapvető VCL -konfiguráció ennek eléréséhez:
VCL 4.0; Backend alapértelmezett {.host = "your-origin-server.com"; .port = "80"; } sub vcl_recv {if (req.method == "get") {return (hash); } else {return (pass); }} sub vcl_backend_response {if (beresp.status == 200) {set beresp.ttl = 3600s; // gyorsítótár 1 órás visszatérés (kézbesítés); } else {return (pass); }}
Avcl_recvalprogram, ellenőrizzük, hogy a kérési módszer megkapja -e. Ha igen, akkor elküldjük a kérést a gyorsítótárazási folyamatnak (hash). Ellenkező esetben a kérést közvetlenül az Origin szervernek adjuk át gyorsítótárazás nélkül (elhalad).
Avcl_backend_responseSubroutine, ellenőrizzük, hogy a válaszállapot -kód 200 (OK). Ha igen, akkor beállítjuk a gyorsítótárazási válasz (TTL) 3600 másodpercre (1 óra), és adjuk meg a gyorsítótárazott választ. Ellenkező esetben a választ közvetlenül az ügyfélnek gyorsítótárazás nélkül adjuk át.
Fejlett gyorsítótárazási stratégiák
Feltételes gyorsítótárazás
Időnként érdemes lehet a tartalmat bizonyos feltételek, például egy adott fejléc jelenléte vagy a lekérdezési paraméter értéke alapján gyorsítótárazni. Íme egy példa a feltérképezési paraméter alapján a feltételes gyorsítótárazásra:
sub vcl_recv {if (req.method == "get" && req.url ~ "\? cache = true") {return (hash); } else {return (pass); }}
Ebben a példában csak gyorsítótárat kapunk olyan kéréseket, amelyekben aCache = igazlekérdezési paraméter az URL -ben.
Gyorsítótár érvénytelenítés
A gyorsítótár érvénytelenítése a gyorsítótárazott tartalom eltávolításának vagy frissítésének folyamata, amikor a mögöttes adatok megváltoztak. A lakk többféle módon biztosítja a gyorsítótár érvénytelenítését, például amegtisztítmódszer vagy rövidebb TTL beállításával a dinamikus tartalomhoz.
Íme egy példa amegtisztítmódszer a gyorsítótár érvénytelenítésére:
sub vcl_recv {if (req.method == "purge") {if (client.ip ~ purge) {returge (purge); } else {return (synth (405, "módszer nem engedélyezett")); }}}
Ebben a példában engedélyezzük a IP -címekkel rendelkező ügyfeleket, amelyek megfelelnek amegtisztítACL a tisztítási kérelmek küldésére a gyorsítótár érvénytelenítésére.
Különböző típusú tartalom gyorsítótárazása
Statikus eszközök gyorsítótárazása
A statikus eszközök, például a CSS, a JavaScript és a képek hosszú ideig gyorsítótárazhatók, mivel nem változnak gyakran. Íme egy példa a statikus eszközök gyorsítótárazására:
sub vcl_recv {if (req.method == "get" && req.url ~ "\. (css | js | jpg | png) $") {return (hash); } else {return (pass); }} sub vcl_backend_response {if (beresp.status == 200 && req.url ~ "\. (css | js | jpg | png) $") {set beresp.ttl = 86400s; // gyorsítótár 1 napos visszatéréshez (kézbesítés); } else {return (pass); }}
Gyorsítótárazási dinamikus tartalom
A dinamikus tartalom, például a felhasználó-specifikus oldalak vagy a valós idejű adatok, alaposabb gyorsítótárazási stratégiát igényelnek. Az egyik megközelítés a helyettesítő kulcsok használata a gyorsítótárazott tartalom megcímkézésére és a releváns adatok megváltozásának érvénytelenítésére.
sub vcl_backend_response {if (beresp.status == 200 && beresp.http.surrate-key) {set beresp.hash_always_miss = false; Állítsa be a beresp.ttl = 300s; // gyorsítótár 5 percig tartó visszatérés (kézbesítés); } else {return (pass); }}
Ebben a példában gyorsítótárat fogunk olyan válaszok, amelyekben aHelyettesítő kulcsFejléc 5 percig.
A lakk beépített funkcióinak és változókjának kihasználása
A lakk gazdag beépített funkciókat és változókat biztosít, amelyek felhasználhatók a kifinomultabb gyorsítótárazási stratégiák végrehajtására. Például areq.http.cookieA változó felhasználható arra, hogy kizárja a kérelmeket bizonyos süteményekkel a gyorsítótárba.
sub vcl_recv {if (req.method == "get" &&! req.http.cookie ~ "session_id") {return (hash); } else {return (pass); }}
Következtetés
A gyorsítótárazási stratégiák végrehajtása a lakk VCL -ben jelentősen javíthatja a webes alkalmazások teljesítményét és méretezhetőségét. A lakk és a VCL alapjainak megértésével, valamint a fejlett technikák, például a feltételes gyorsítótárazás, a gyorsítótár érvénytelenítés és a helyettesítő kulcsok kihasználásával optimalizálhatja a gyorsítótárazási beállítást, hogy megfeleljen az alkalmazás konkrét igényeinek.
Ha érdekli, hogy többet megtudjon lakk -megoldásainkról, vagy megvitassa, hogyan segíthetünk a vállalkozásának legjobb gyorsítótárazási stratégiáinak végrehajtásában, kérjük, vegye fel velünk a beszerzési konzultációt. A lakktermékek széles skáláját kínáljuk, beleértveVíz alapú, tiszta kabát lakk,Víz alapú poliuretán fényesség, ésVíz alapú matt fedőréteg-
Referenciák
- Lakkszoftver dokumentáció
- Nagyteljesítményű böngészőhálózat, Ilya Grigorik
