Hogyan állíthatok be HTTP-gyorsítótár fejléceket a Varnish VCL-ben?

Dec 08, 2025

Hagyjon üzenetet

Frank Miller
Frank Miller
Frank a gyár produkciós felügyelője. Több mint 10 éves termelési tapasztalattal jár a vízben terjedő gyanta vegyi anyagok gyártási folyamatában. Hatékony menedzsmentje biztosítja a vállalat stabil termelését és magas színvonalú termelését.

Szia! Varnish beszállítóként első kézből láttam, hogy a HTTP-gyorsítótárazási fejlécek beállítása a Varnish VCL-ben milyen játék lehet a webhely teljesítményének megváltoztatása. Ebben a blogban lépésről lépésre végigvezetem a folyamaton.

Először is értsük meg, miért olyan fontosak a HTTP-gyorsítótárazási fejlécek. Amikor a felhasználó meglátogat egy webhelyet, a böngésző olyan erőforrásokat kér a szervertől, mint a HTML, CSS, JavaScript és képek. Megfelelő gyorsítótárazás nélkül a szervernek minden egyes alkalommal fel kell dolgoznia ezeket a kéréseket, ami lelassíthatja a webhelyet, különösen nagy forgalmú időszakokban. A HTTP-gyorsítótárazási fejlécek tájékoztatják a böngészőt és más közvetítő gyorsítótárakat (például a Varnish-t), hogy mennyi ideig tárolhatnak egy adott erőforrást, és újra felhasználhatják anélkül, hogy vissza kellene menniük a szerverre.

2 Grossy Clear Varnish2 Leather Lacquer Coating(001)

A Lakk VCL alapjai

A Varnish konfigurációs nyelve (VCL) a Varnish viselkedésének szabályozására szolgál. Ez olyan, mint egy szabályrendszer, amelyet a Varnish követ a kérések és válaszok kezelésekor. A VCL-ben van néhány kulcsfontosságú szubrutin, amelyekre a gyorsítótárazási fejlécek beállításához összpontosítunk:vcl_recv,vcl_backend_response, ésvcl_deliver.

vcl_recv

Avcl_recvszubrutin akkor hívódik meg, amikor a Varnish kérést kap egy klienstől (általában egy böngészőtől). Ez egy nagyszerű hely arra vonatkozó döntések meghozatalára, hogy gyorsítótárazza-e a kérést vagy sem. Előfordulhat például, hogy ki szeretne zárni bizonyos típusú kéréseket, például a gyakran változó dinamikus tartalomra vonatkozó kéréseket.

sub vcl_recv { # Ne tárolja a POST kéréseket a gyorsítótárban if (req.method == "POST") { return (pass); } # Ide további feltételeket adhat meg az URL-minták alapján if (req.url ~ "^/admin/") { return (pass); } }

Ebben a kódban azt mondjuk a Varnish-nek, hogy ne tárolja gyorsítótárban a POST-kéréseket, mert ezek általában űrlapbeküldést tartalmaznak, és valószínűleg dinamikusak. A következővel kezdődő kéréseket is kizárjuk/admin/mivel valószínűleg a webhely dinamikus tartalommal rendelkező adminisztratív területére vonatkoznak.

vcl_backend_response

Avcl_backend_responseszubrutin akkor hívódik meg, amikor a Varnish választ kap a háttérkiszolgálótól. Itt állíthatjuk be vagy módosíthatjuk a gyorsítótárazási fejléceket.

sub vcl_backend_response { # Állítson be alapértelmezett gyorsítótáridőt az összes válaszhoz set beresp.ttl = 3600s; # A tartalom típusától függően különböző gyorsítótáridőket állíthat be if (beresp.http.Content - Type ~ "^text/html") { set beresp.ttl = 1800s; } # Egyéni gyorsítótár hozzáadása - vezérlőfejléc beállítása beresp.http.Cache - Control = "public, max - age=3600"; }

Itt beállítjuk az összes válasz alapértelmezett időtartamát (TTL), amely 3600 másodperc (1 óra). HTML-tartalom esetén a TTL-t 1800 másodpercre (30 percre) csökkentjük, mert a HTML gyakrabban változhat. Hozzáadjuk még aGyorsítótár – Vezérlésfejléc, amely egy szabványos HTTP-fejléc, amely megmondja a böngészőnek és a többi gyorsítótárnak, hogyan kezelje az erőforrást.

vcl_deliver

Avcl_deliverszubrutin közvetlenül azelőtt hívódik meg, hogy a Varnish elküldi a választ az ügyfélnek. Ezzel hozzáadhat vagy módosíthat fejléceket, amelyeket az ügyfél lát.

sub vcl_deliver { # Adjon hozzá egyéni fejlécet annak jelzésére, hogy a választ a Varnish set resp.X gyorsítótárában tárolja. http.X - Cached - By = "Lakk"; }

Ebben a példában egyéni fejlécet adunk hozzáX – Gyorsítótárazott – általhogy az ügyfél tudja, hogy a választ a Varnish gyorsítótárazta.

Speciális gyorsítótárazási forgatókönyvek

Nézzünk meg néhány fejlettebb forgatókönyvet a gyorsítótárazási fejlécek beállításához.

Gyorsítótár feltörése

Néha kényszerítheti a böngészőt egy erőforrás új verziójának lekérésére, még akkor is, ha az még a gyorsítótáron belül van. Ezt úgy teheti meg, hogy egy verziószámot vagy egy hash-t csatol az erőforrás URL-címéhez. A VCL-ben ezt úgy kezelheti, hogy kivonja a verziószámot az URL-ből, mielőtt átadná a háttérnek.

sub vcl_recv { if (req.url ~ "\?v=[0 - 9]+$") { set req.url = regsub(req.url, "\?v=[0 - 9]+$", ""); } }

Ez a kód eltávolítja a?v=123részét az URL-ből, így a Varnish gyorsítótárazhatja az erőforrást az eredeti URL alapján a verziószám nélkül.

Feltételes gyorsítótár

Előfordulhat, hogy csak bizonyos feltételek teljesülése esetén szeretne egy erőforrást gyorsítótárba helyezni. Például egy oldalt csak akkor lehet gyorsítótárba helyezni, ha az adott HTTP-állapotkóddal rendelkezik.

sub vcl_backend_response { if (beresp.status == 200) { set beresp.ttl = 3600s; set beresp.http.Gyorsítótár - Control = "public, max - age=3600"; } else { beresp.ttl = 0s; set beresp.http.Cache - Control = "no - cache"; } }

Itt a sikeres válaszokat (200-as állapotkód) egy órán keresztül gyorsítótárazzuk, de a többi válaszokat nem.

Lakktermékeink használata

Cégünknél a Varnish-hez kapcsolódó termékek széles skáláját kínáljuk, amelyek még egyszerűbbé tehetik a HTTP-gyorsítótár fejlécek beállítását és kezelését. Például a miénkVízbázisú matt fedőlakknagyszerű lehetőség olyan webhelyek számára, amelyek sima, matt felületet szeretnének, miközben az optimalizált gyorsítótárazás előnyeit is élvezik. Előre konfigurált VCL-sablonokkal érkezik, amelyeket könnyedén személyre szabhat az Ön egyedi igényei szerint.

A miénkVízbázisú poliuretán fényesegy másik kiváló választás. Fényes megjelenést biztosít, és beépített fejlett gyorsítótárazási funkciókkal rendelkezik. Igényeitől függően különböző típusú erőforrások gyorsítótárazására használható, eltérő gyorsítótáridővel.

Ha pedig általánosabb célú megoldást keres, akkor a miVízbázisú átlátszó lakkegy nagyszerű lehetőség. Világos, védőréteget kínál webhelye erőforrásai számára, és segít a hatékony gyorsítótárazási fejlécek beállításában.

Vásárlásért forduljon hozzánk

Ha többet szeretne megtudni Varnish termékeinkről, vagy segítségre van szüksége a HTTP-gyorsítótárazási fejlécek beállításához a Varnish VCL-ben, ne habozzon kapcsolatba lépni velünk. Van egy szakértői csapatunk, akik végigvezetik Önt a folyamaton, és segítenek abban, hogy a legtöbbet hozza ki a gyorsítótárazási beállításokból. Legyen szó egy egyszerű weboldallal rendelkező kisvállalkozásról, vagy egy összetett gyorsítótárazási igényekkel rendelkező nagyvállalatról, mi mindenben megtaláljuk az Ön igényeit.

Hivatkozások

  • Lakk Dokumentáció
  • HTTP-gyorsítótárazási RFC (RFC 7234)

Szóval, megvan! A HTTP-gyorsítótárazási fejlécek beállítása a Varnish VCL-ben elsőre kissé bonyolultnak tűnhet, de megfelelő tudással és termékeinkkel optimalizálhatja webhelye teljesítményét, és jobb felhasználói élményt biztosíthat.

A szálláslekérdezés elküldése
Vegye fel velünk a kapcsolatotHa bármilyen kérdése van

Vagy kapcsolatba léphet velünk telefonon, e -mailben vagy online űrlapon keresztül. Szakemberünk hamarosan kapcsolatba lép.

Vegye fel a kapcsolatot most!