Wat is Varnish? Maakt het je website echt 100x sneller?
Varnish is een web accelerator, een technische tool die je website flink wat sneller kan maken. Omdat Varnish zo complex is, proberen we in een aantal blogposts uit te leggen wat Varnish is, hoe het werkt, wat je er allemaal mee kan, waar de valkuilen zitten en hoe je ermee aan de slag gaat.
Wat is Varnish?
Varnish is een webaccelarator die je aan je software stack kan toevoegen om de snelheid van je website aanzienlijk te verbeteren. Maar laten we om te beginnen kijken naar wat websites vertraagt.
Bekijk onze video-tutorial: Maak jouw website vliegensvlug met caching
Wat vertraagt websites?
Gewoonlijk heb je een gebruiker die vanop zijn laptop surft naar jouw site en verbinding maakt met je server. Dit zorgt voor connectie met een webserver – een Apache of een Nginx – die op zijn beurt een PHP-proces activeert om je code aan te spreken. Jouw code zal praten met een database, zoals MySQL of PostgreSQL, of met een cache zoals Redis, ofwel met externe API’s, die je niet echt onder controle hebt, zoals een Facebook- of Twitter-API of dergelijke.
Op het einde wanneer alle gegevens verzameld zijn genereert je PHP een antwoord dat wordt doorgestuurd naar je Apache-webserver. Het antwoord is de HTML-code die jouw klant gaat zien. Die HTML-code komt bij je klant. Maar die is niet erg blij!
En de volgende persoon die naar je webserver surft, zal precies hetzelfde proces activeren. Eerst praten met Apache, gevolgd door een PHP-proces, connectie met de database of de API … Je snapt het al, het kan een tijdje duren. Aan het einde van het proces krijgt die gebruiker bovendien exact hetzelfde te zien als de vorige.
Is Varnish een slimme oplossing?
Als je meer en meer bezoekers krijgt kan je natuurlijk een grotere server gebruiken. Of er een toevoegen. En nog een. Maar dat is niet echt efficiënt! Hoe kunnen we dit oplossen met meer finesse en meer intelligentie? We zouden een extra laag kunnen introduceren bovenop je Apache-webserver. Dat is Varnish.
Varnish is een eenvoudige tool die eerder verzonden antwoorden bijhoudt om een volgende bezoeker sneller te helpen. Dus al deze gecompliceerde logica wordt maar één keer geactiveerd. De HTML zal naar Varnish worden verzonden. Varnish stuurt het dan naar de bezoeker. De volgende bezoeker praat gewoon met Varnish, met de vraag “geef me je startpagina”, en Varnish kan die in milliseconden leveren, zonder te praten met PHP, MySQL, API’s, noem maar op.
Dit maakt van Varnish een webversneller. Technisch gezien is het een proxy, die tussen een bezoeker en jouw webserver zit en je website sneller maakt.
Varnish als load balancer
Varnish kan ook fungeren als load balancer. Als het aantal bezoekers te groot wordt voor één enkele server, kan je meerdere webservers toevoegen om al de bezoekers op te vangen. Varnish treedt dan op als doorgeefluik en bepaalt waar elke bezoeker terecht komt. Als je eerste webserver niet beschikbaar is, door onderhoud of een panne, zal Varnish die uit zijn lijst halen en bezoekers naar andere servers sturen.
Je kan met Varnish ook graduele upgrades doen, waarbij je je code geleidelijk aan implementeert per server zonder dat een bezoeker iets merkt.
Door Varnish te gebruiken ga je slim om met schaalbaarheid. In plaats van meer hardware in te zetten, introduceer je intelligentie. Resultaat: minder CPU, geheugen en schijftoegang. Het maakt alles een stuk sneller. Als je Varnish aan je stack toevoegt, heb je minder PHP, minder MySQL, minder database. Kortom, minder van alles. En meer tevreden klanten!
Het eindresultaat is een veel snellere website. Denk in milliseconden in plaats van seconden.
Betere SEO resultaten dankzij Varnish
Daarbovenop heb je het voordeel dat sites zoals Google en Bing de snelheid van je website gebruiken als een van de indicatoren om de kwaliteit van je site te bepalen.
Dus hoe sneller je site, hoe beter je scoort in zoekresultaten. Dat kun je niet doen met alleen PHP. Wees slim en plaats een caching-laag bovenop je PHP.
Wil je meer weten?