De snelheid en stabiliteit van je webservers is cruciaal voor een optimale gebruikerservaring. Gelukkig bestaat er een oplossing die de stabiliteit en snelheid van je servers op elk moment garandeert: caching oftewel het opslaan van vaak opgevraagde informatie die niet verandert.
Varnish is de meest gebruikte en in veel gevallen ook de meest aan te raden caching-technologie.
Varnish is een unieke vorm van caching. Het slaat volledige webpagina’s in cache op om een website sneller te maken. Varnish vangt het HTTP-verkeer dat bedoeld is voor de webapplicatie op en serveert gecachete pagina’s aan de bezoekers. Zo wordt de applicatie niet langer belast waardoor de stabiliteit gegarandeerd blijft.
Naast Varnish bestaan er nog andere caching-technologieën, zoals Redis, OPcache en APCu.
Leuk weetje: Varnish werd aanvankelijk als maatwerkoplossing gebouwd om de Noorse online krant www.vg.no sneller te maken en wordt nu gebruikt door miljoenen websites wereldwijd.
Caching helpt om de belasting op je resources te verminderen en de stabiliteit en snelheid van je applicatie op peil te houden. Hierbij wordt data in een berekend formaat opgeslagen voor later gebruik. Zo moet hetzelfde verzoek niet telkens opnieuw berekend te worden.
Meer infoDe voordelen van Varnish zijn overduidelijk: het garandeert de snelheid, stabiliteit en performantie van je webapplicatie.
Varnish kan heel veel simultane connecties aan en verbruikt hiervoor weinig geheugen. Ook het CPU-verbruik van Varnish ligt erg laag. Varnish focust zich enkel op caching en heeft weinig andere features. Daardoor is de architectuur erg efficiënt.
Varnish slaat volledige pagina’s op om de server in zijn geheel te ontlasten. Doordat de cache items in het RAM worden bijgehouden, is het bliksemsnel.
Een enkele Varnish server is goed voor volgende performantiewaarden:
Varnish gedraagt zich als webserver waarbij het tussen de gebruiker en de webapplicatie staat en communiceert via het HTTP-protocol. Zo gaat het HTTP-verkeer niet rechtstreeks naar de webapplicatie, maar wordt het afgeleid naar Varnish.
In tegenstelling tot andere caching-technologieën cachet Varnish volledige webpagina’s. Doordat deze pagina’s apart worden bewaard in de cache, hoeven ze niet meer opgevraagd te worden bij de server wanneer de webpagina opnieuw wordt geopend. Zo wordt de pagina veel sneller getoond.
Wanneer een gebruiker een webpagina wil openen die nog niet gecachet is, zal Varnish een verbinding maken met de webapplicatie en het oorspronkelijke verzoek doorsturen. De HTTP-output van de opgevraagde webpagina die de webapplicatie doorstuurt, wordt bijgehouden in Varnish.
Deze informatie blijft gecached zolang de Time To Live niet verstreken is. Deze Time To Live (TTL) wordt bepaald door de “Cache-Control”-header. Deze header maakt deel uit van de HTTP-response van de webapplicatie en wordt door Varnish gebruikt om te bepalen hoe lang de webpagina gecachet mag worden.
Varnish zal enkel gecachete webpagina’s terugsturen als het zeker is dat de inhoud niet privé is. Wanneer authenticatie vereist is of een cookie gebruikt wordt, is de response enkel geschikt voor de gebruiker in kwestie en niet voor de rest van de bezoekers. In dat geval zal Varnish de betreffende webpagina niet cachen.
Het is niet altijd nodig om een webpagina te cachen. De webapplicatie kan beslissen dat een pagina niet in de cache opgeslagen mag worden.
Daarnaast heeft Varnish enkele interne regels die bepalen wanneer er wel en niet gecachet wordt:
Varnish kan beslissen om de cache te bypassen en de request toch naar de webserver te sturen. Ook al bevindt de aangevraagde webpagina zich in cache.
VCL is een speciale programmeertaal waarmee het caching-gedrag van Varnish ingesteld kan worden.
VCL kan gebruikt worden voor volgende taken:
De VCL-code bevindt zich in een VCL-file die zich op de Varnish server bevindt.
Zonder Varnish zal de aanvraag van een gebruiker rechtstreeks naar de webapplicatie doorgestuurd worden. Bij het implementeren van Varnish komt daar een Varnish-server tussen te staan.
Om Varnish te activeren, volstaat het in theorie om het “www” DNS-record van je domeinnaam naar de Varnish-server te verwijzen. Als je applicatie de HTTP-caching conventies respecteert, gaat de rest vanzelf. Zo eenvoudig kan je met Varnish starten.
In de praktijk moet je goed nagaan hoe je webapplicatie omgaat met HTTP:
In specifieke situaties moeten sommige objecten expliciet verwijderd worden uit de cache.
Denk bijvoorbeeld aan de voorpagina van een nieuwssite. Wanneer er breaking news te melden is, wil de nieuwssite niet wachten tot de TTL van de gecachete content vervalt. Daarom moeten de betreffende pagina’s meteen uit de cache verwijderd worden.
Hiervoor heeft VCL de nodige voorzieningen.
Courante platformen zoals WordPress, Drupal, Joomla en Magento bieden VCL-templates aan die rekening houden met het gedrag van het framework in kwestie.
Varnish kent al lang geen geheimen meer voor de experten van Combell. Samen met jou zoeken we naar de beste oplossing voor jouw specifieke applicatie. Ook voor andere caching-oplossingen kan je bij ons terecht. Als uitbreiding op onze webhostingpakketten of als oplossing op maat om de performantie van je applicatie te optimaliseren.
Combell is al jaren actief in het streven naar snelle laadtijden en een optimale gebruikerservaring door middel van caching, waaronder het populaire Varnish.
Samen met jou zoeken we naar de beste oplossing voor jouw website of applicatie. Onze ervaren specialisten staan in voor het selecteren en implementeren van de beste caching.