Ako nastaviť hlavičky ukladania HTTP do vyrovnávacej pamäte vo Varnish VCL?

Dec 08, 2025

Zanechajte správu

Frank Miller
Frank Miller
Frank je vedúcim výroby v továrni. S viac ako 10 -ročnými výrobnými skúsenosťami je zdatný v procese výrobného procesu chemikálií na živicu. Jeho efektívne riadenie zaisťuje stabilnú výrobu a vysokú kvalitu výstupu spoločnosti.

Ahoj! Ako dodávateľ Varnish som na vlastnej koži videl, ako môže byť nastavenie hlavičiek ukladania HTTP do vyrovnávacej pamäte vo Varnish VCL zmenou výkonu webovej stránky. V tomto blogu vás prevediem procesom krok za krokom.

Po prvé, poďme pochopiť, prečo sú hlavičky ukladania do vyrovnávacej pamäte HTTP také dôležité. Keď používateľ navštívi webovú stránku, prehliadač od servera požaduje zdroje, ako sú HTML, CSS, JavaScript a obrázky. Bez správneho ukladania do vyrovnávacej pamäte musí server tieto požiadavky spracovať zakaždým, čo môže spomaliť stránku, najmä počas období vysokej návštevnosti. Hlavičky ukladania do vyrovnávacej pamäte HTTP informujú prehliadač a ďalšie sprostredkovateľské vyrovnávacie pamäte (napríklad Varnish), ako dlho môžu uchovávať konkrétny zdroj a znova ho používať bez toho, aby sa museli vrátiť na server.

2 Grossy Clear Varnish2 Leather Lacquer Coating(001)

Základy laku VCL

Jazyk konfigurácie laku (VCL) sa používa na ovládanie správania laku. Je to ako súbor pravidiel, ktorými sa Varnish riadi pri vybavovaní požiadaviek a odpovedí. Vo VCL je niekoľko kľúčových podprogramov, na ktoré sa zameriame pri nastavovaní hlavičiek ukladania do vyrovnávacej pamäte:vcl_recv,vcl_backend_responseavcl_deliver.

vcl_recv

Thevcl_recvpodprogram sa volá, keď Varnish dostane požiadavku od klienta (zvyčajne prehliadača). Je to skvelé miesto na rozhodovanie o tom, či uložiť požiadavku do vyrovnávacej pamäte alebo nie. Môžete napríklad chcieť vylúčiť určité typy žiadostí, ako sú požiadavky na dynamický obsah, ktorý sa často mení.

sub vcl_recv { # Neukladať požiadavky POST do vyrovnávacej pamäte if (req.method == "POST") { return (pass); } # Tu môžete pridať ďalšie podmienky na základe vzorov URL if (req.url ~ "^/admin/") { return (pass); } }

V tomto kóde hovoríme Varnish, aby neukladal požiadavky POST do vyrovnávacej pamäte, pretože zvyčajne zahŕňajú odosielanie formulárov a je pravdepodobné, že budú dynamické. Tiež vylučujeme žiadosti, ktoré začínajú na/admin/pretože sú pravdepodobne pre administratívnu oblasť lokality, ktorá má dynamický obsah.

vcl_backend_response

Thevcl_backend_responsepodprogram sa volá, keď Varnish dostane odpoveď z backendového servera. Tu môžeme nastaviť alebo upraviť hlavičky ukladania do vyrovnávacej pamäte.

sub vcl_backend_response { # Nastaviť predvolený čas vyrovnávacej pamäte pre všetky odpovede set beresp.ttl = 3600s; # Môžete nastaviť rôzne časy vyrovnávacej pamäte na základe typu obsahu if (beresp.http.Content - Typ ~ "^text/html") { set beresp.ttl = 1800s; } # Pridať vlastnú vyrovnávaciu pamäť - sada hlavičiek kontroly beresp.http.Cache - Control = "public, max - age=3600"; }

Tu nastavujeme predvolenú hodnotu Time - To - Live (TTL) 3600 sekúnd (1 hodina) pre všetky odpovede. Pre obsah HTML znižujeme TTL na 1800 sekúnd (30 minút), pretože HTML sa môže meniť častejšie. Pridávame tiež aCache – ovládaniehlavička, čo je štandardná hlavička HTTP, ktorá informuje prehliadač a ďalšie vyrovnávacie pamäte, ako zaobchádzať so zdrojom.

vcl_deliver

Thevcl_deliverpodprogram sa volá tesne predtým, ako Varnish odošle odpoveď klientovi. Môžete to použiť na pridanie alebo úpravu hlavičiek, ktoré klient uvidí.

sub vcl_deliver { # Pridajte vlastnú hlavičku na označenie, že odpoveď je uložená do vyrovnávacej pamäte pomocou sady Varnish resp.http.X - Cached - By = "Varnish"; }

V tomto príklade pridávame vlastnú hlavičkuX – vo vyrovnávacej pamäti – odaby klient vedel, že odpoveď bola uložená do vyrovnávacej pamäte pomocou Varnish.

Pokročilé scenáre ukladania do vyrovnávacej pamäte

Pozrime sa na niektoré pokročilejšie scenáre nastavenia hlavičiek ukladania do vyrovnávacej pamäte.

Vynechanie vyrovnávacej pamäte

Niekedy chcete prinútiť prehliadač, aby načítal novú verziu zdroja, aj keď je stále v rámci času vyrovnávacej pamäte. Môžete to urobiť tak, že k adrese URL zdroja pridáte číslo verzie alebo hash. Vo VCL to môžete zvládnuť odstránením čísla verzie z adresy URL pred jej odovzdaním do backendu.

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

Tento kód odstráni?v=123časť z adresy URL, takže Varnish môže ukladať zdroj do vyrovnávacej pamäte na základe pôvodnej adresy URL bez čísla verzie.

Podmienené ukladanie do vyrovnávacej pamäte

Zdroj možno budete chcieť uložiť do vyrovnávacej pamäte iba vtedy, ak sú splnené určité podmienky. Stránku môžete napríklad uložiť do vyrovnávacej pamäte iba vtedy, ak má špecifický stavový kód HTTP.

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

Tu ukladáme úspešné odpovede (stavový kód 200) do vyrovnávacej pamäte na hodinu, ale neukladáme do vyrovnávacej pamäte iné odpovede.

Používanie našich lakov

V našej spoločnosti ponúkame celý rad produktov súvisiacich s lakom, ktoré môžu ešte viac zjednodušiť nastavenie a správu hlavičiek ukladania HTTP do vyrovnávacej pamäte. Napríklad nášMatný vrchný lak na vodnej bázeje skvelou voľbou pre webové stránky, ktoré chcú hladký, matný povrch a zároveň ťažia z optimalizovaného ukladania do vyrovnávacej pamäte. Dodáva sa s vopred nakonfigurovanými šablónami VCL, ktoré si môžete ľahko prispôsobiť tak, aby vyhovovali vašim špecifickým potrebám.

nášPolyuretánový lesk na vodnej bázeje ďalšou skvelou voľbou. Poskytuje vysoký lesk a má zabudované pokročilé funkcie ukladania do vyrovnávacej pamäte. Môžete ho použiť na ukladanie rôznych typov zdrojov do vyrovnávacej pamäte s rôznym časom vyrovnávacej pamäte, v závislosti od vašich požiadaviek.

A ak hľadáte všeobecnejšie riešenie, našePriehľadný lak na vodnej bázeje skvelá možnosť. Ponúka jasnú ochrannú vrstvu pre zdroje vášho webu a pomáha pri nastavovaní efektívnych hlavičiek ukladania do vyrovnávacej pamäte.

Kontaktujte nás ohľadom nákupu

Ak máte záujem dozvedieť sa viac o našich produktoch Varnish alebo potrebujete pomoc s nastavením hlavičiek ukladania HTTP do vyrovnávacej pamäte vo Varnish VCL, neváhajte nás kontaktovať. Máme tím odborníkov, ktorí vás prevedú celým procesom a pomôžu vám vyťažiť maximum z nastavenia ukladania do vyrovnávacej pamäte. Či už ste malý podnik s jednoduchou webovou stránkou alebo veľký podnik s komplexnými potrebami ukladania do vyrovnávacej pamäte, máme pre vás riešenie.

Referencie

  • Dokumentácia k laku
  • Ukladanie HTTP do vyrovnávacej pamäte RFC (RFC 7234)

Takže, tu to máte! Nastavenie hlavičiek ukladania HTTP do vyrovnávacej pamäte vo Varnish VCL sa môže na prvý pohľad zdať trochu zložité, ale so správnymi znalosťami a našimi produktmi môžete optimalizovať výkon svojich webových stránok a poskytnúť používateľom lepší zážitok.

Zaslať požiadavku
Kontaktujte násAk máte nejaké otázky

Môžete nás buď kontaktovať prostredníctvom telefónu, e -mailu alebo online formulára nižšie. Náš špecialista vás čoskoro bude kontaktovať.

Kontaktujte teraz!