Hoe werkt Varnish

In onze eerste Chalk Talk video vertelden we dat Varnish je website flink wat sneller kan maken. Maar Varnish is een complexe tool. Daarom gaan we in deze tweede Chalk Talk video in detail bekijken hoe Varnish precies werkt. (Je kan onderaan eenvoudig Nederlandstalige of Engelstalige ondertitels aanzetten)

De uitgeschreven tekst van deze Chalk Talk “Hoe werkt Varnish?”

Welkom bij Chalk Talk, een serie video’s waarin we complexe technologieën uitleggen met slechts één krijtbord. In deze video is het aan Varnish en hoe dat past in jouw infrastructuur. We gaan Varnish dus een keer in detail bekijken. Hoe het werkt en hoe het verzoeken van client- en server samenbrengt.

Hoe werkt Varnish?

Varnish is een stukje technologie dat tussen je klant en je server staat om dingen sneller te maken. Zo ziet dat eruit… Jouw klant, tevreden achter zijn laptop, gaat een verbinding maken met jouw server en wil toegang tot jouw website. Hij gaat verbinden met Varnish, deze hele doos, en Varnish gaat een kijkje nemen in zijn cache om te zien of er al een antwoord is voor die specifieke pagina.

Is dat niet zo, zal Varnish op zichzelf een request sturen naar je webserver. Dit is waar je PHP connecteert met je database, je Redis, je API calls… Dit is waarom het een tijdje duurt om een ​​pagina te tonen. Zodra dat werk gedaan is stuurt de webserver het naar Varnish. Varnish slaat het op in de cache en bezorg het aan de eindgebruiker.

De volgende keer wanneer iemand die pagina bezoekt of dezelfde gebruiker komt terug doet Varnish dezelfde zoektocht in de cache, maar deze keer zal hij wel exact dezelfde HTML-pagina vinden. Varnish levert die dan aan je klant, in milliseconden in plaats van seconden.

De verschillende delen van Varnish

Elk van deze blokken: het deel waar je gebruiker verbindt met Varnish, het deel waar Varnish verbindt met je webserver, zijn blokken die wij, of jij, kunnen finetunen. Je kan logica toevoegen om cookies of URL-parameters te verwijderen, of de host-header normaliseren. Dat kan allemaal in dit blok.

Als je een request stuurt om verbinding te maken met de ‘langzame’ webserver kan je debug-headers toevoegen, kan je aanvullende informatie toevoegen om je een idee te geven, aan de serverkant, wat je klant heeft gevraagd. Extra headers, het manipuleren van cookies, enz.

Zodra de server klaar is met al die dingen, kom je bij een ander blok dat je ook kunt finetunen. Headers toevoegen of verwijderen… wat je wil. Vervolgens ga je naar de caching, het hart en de ziel van Varnish zelf, waar je kan finetunen wat een bepaalde URL definieert.

Als ik je site bezoek versus mijn collega en je hebt bijvoorbeeld een winkelmandje dan is het resultaat anders. De cache is waar je bepaalt welke parameters worden gebruikt om mijn request te herkennen versus die van mijn collega. Het onderdeel VCL_deliver is eigenlijk het laatste deel voor je gegevens worden verzonden naar een klant. En de laatste plaats waar je kan opruimen. Stel dat je debug headers had, dan kunnen die nog weg voordat ze tot bij je klant komen.

Varnish Configuration Language (VCL)

Het finale resultaat is een snelle ervaring voor je bezoeker. Die krijg je door Varnish af te stellen met een C-achtige configuratiesyntaxis. Het is een VCL-bestand, de Varnish-configuratietaal. Je kunt Varnish programmeren om te doen wat je wilt. Je kunt headers verwijderen, je kunt headers toevoegen, je kunt bepaalde URL’s herschrijven naar andere URL’s. Het is een zeer complex en een zeer uitgebreid configuratiebestand om dingen in te doen.

Het lastige deel is waar je de grens trekt tussen wat je webserver doet versus wat Varnish doet. Dat is een heel dunne lijn. Idealiter hou je Varnish zo eenvoudig mogelijk en doe je alles in je php, je Perl– of je Ruby-toepassing. Varnish geeft je de mogelijkheid om elk aspect ervan te finetunen.

Het grote verschil is dat je site offline kan gaan met 10 of overleven met 10.000 gebruikers gewoon door Varnish toe te voegen.

Key takeaways

Om te onthouden: Varnish is een complex stuk technologie dat wij je kunnen helpen configureren. Idealiter houd je het zo eenvoudig mogelijk en staat alle applicatielogica binnen je eigenlijke toepassing.

De volgende keer in Chalk Talk?

In de volgende video’s bekijken we inhoudsstrategieën voor je website, hoe je Varnish kan debuggen en hoe je ermee van start gaat. Tot binnenkort voor een nieuwe episode van Chalk Talk!

Wil je nu al meer weten, kan je meteen ons Varnish eBook downloaden.

Gerelateerde berichten
as-as-service model

Wat wil je in de cloud zetten?

Wanneer je informatie zoekt over de cloud, word je al snel om de oren geslagen met termen als SaaS, PaaS, IaaS en UaaS. Dat zijn respectievelijk afkortingen voor: Software-as-a-Service, Platform-as-a-Service, Infrastructure-as-a-Service en Uptime-as-a-Service. Ze geven aan wat je allemaal precies in de cloud kan of wil zetten. Waar zitten de overeenkomsten en waar de verschillen? En wat wil jij allemaal in de cloud hebben?

Lees meer

Afschakelplan

Hoe voorkom je downtime als de elektriciteit wegvalt tijdens het afschakelplan?

Wat betekent het afschakelplan voor jouw servers en website? Hoe groot is de kans dat die ook enkele uren onbereikbaar zijn?

Lees meer

managed hosting versus unmanaged hosting

Wie gaat je cloud beheren?

Waar zitten de grote verschillen tussen managed hosting en unmanaged hosting? En wat zijn de voordelen en nadelen die eraan verbonden zijn?

Lees meer