Varnish logo - Nucleus cloud hosting

Varnish is niet enkel de Engelse term voor vernis, het is ook een tool om uw website supersnel te maken en een standaard stuk software in onze geavanceerde managed hostings. Wat is Varnish dan, vraagt u zich af?

Wat is Varnish?

De Varnish die wij bedoelen noemt zichzelf een ‘Web Application Accelerator’, en indien goed ingesteld is het dat inderdaad. Maar het doet ook nog veel meer: het is een load balancer, een reverse proxy en een website cache in één.. Varnish kan u installeren op uw webserver of een aparte server. Het vervangt de poort waarop u nu uw webserver zou actief hebben (standaard poort :80) en zal alle HTTP verzoeken voortaan zelf ontvangen. Eens een verzoek ontvangen is zal het de pagina uit een cache teruggeven of het verzoek doorspelen naar de echte webserver die op een andere poort (of andere server) draait. Dat antwoord van de webserver kan dan opgeslagen worden in de cache zodat het bij het volgende bezoek direct gebruikt kan worden.

Wat heb ik er aan?

Als u een webpagina heeft of maakt waarvan u weet dat het populair kan worden met vele bezoekers is het zeker interessant Varnish te betrekken bij uw ontwikkeling. Neem bijvoorbeeld een standaard LAMP (Linux, Apache, MySQL en PHP) omgeving waar heel wat websites en applicaties in gemaakt worden. Telkens er iemand een pagina opvraagt komt dat verzoek aan op de Apache webserver, die verwerkt uw hele PHP code en vraagt met de nodige SQL queries alle data op van de MySQL database server. De volgende bezoeker die uw website bezoekt doet de hele cyclus opnieuw: webserver -> PHP verwerken -> MySQL data ophalen -> pagina aan de gebruiker bezorgen. Ook al is het eindresultaat in beide gevallen vaak 100% identiek, toch wordt alles opnieuw berekend en opgevraagd. En dat vraagt tijd van uw bezoeker en tijd voor de CPU van uw server. Dat moet dus efficiënter kunnen, dachten ze bij Varnish Software, in de vorm van pagina caching. Wat als het eind-resultaat van de pagina al kan bijgehouden worden zodat een bezoeker die de identieke pagina opvraagt niet het hele proces moet doorlopen? Het resultaat is dat uw bezoeker van de site sneller een response krijgt en sneller de gewenste pagina op zijn of haar scherm kan zien, zonder wachttijden.

We leggen het zo duidelijk mogelijk uit in onze Chalk Talk video.

Door de pagina’s in het geheugen van de server bij te houden profiteert iedereen: uw server hoeft minder tijd te verspillen aan het ophalen en verwerken van alle data en de bezoeker krijgt sneller de resultaten die het wil zien. Dit maakt Varnish zelfs een perfect onderdeel van uw omgeving ook als u géén hoge bezoekersaantallen verwacht maar gewoon een snelle website wil. En dat komt dan zeker ook uw SEO ten goede.

Hoe werkt het?

We moeten eerlijk zijn, Varnish is geen eenvoudige software. Doordat het eigenlijk als man-in-the-middle (of proxy) optreed tussen de bezoeker van uw website en de webserver is het zelfs het meest cruciale onderdeel van uw hele software stack. Als Varnish zich niet gedraagt zoals het hoort kan een verzoek van uw bezoeker verloren gaan en niet tot bij uw webserver geraken. Of het antwoord van de webserver geraakt niet terug tot bij uw bezoeker. Varnish splitst het hele HTTP verzoek van de bezoeker en het antwoord van de webserver op in verschillende blokken, waar je als systeembeheerder of ontwikkelaar kan inpikken. Je kan het inkomende verzoek aanpassen (de ‘Receive’ routine of ‘vcl_recv’) en headers toevoegen of aanpassen net als het antwoord van de webserver (de ‘Fetch’ routine of ‘vcl_fetch’). De meeste standaard PHP applicaties bijvoorbeeld laten het uitschijnen alsof elke bezoeker uniek is door een uniek PHP sessie cookie mee te geven, terwijl in de praktijk de meeste bezoekers anoniem zijn. Varnish wordt ingesteld door gebruik te maken van een scripting taal genaamd ‘VCL’ of ‘Varnish Configuration Language. De syntax van die configuraties lijkt erg hard op C-code en in de achtergrond wordt het daar ook naar gecompileerd om Varnish supersnel te maken. Hoe ziet zo’n code er nu uit? Wel, op onze Github repository staat een mooi voorbeeld dat u zo kan gebruiken. Door met een scripting taal te werken krijg je de mogelijkheid *alles* te doen met een HTTP verzoek: je kan het van begin tot einde aanpassen. Dat is meteen de kracht en complexiteit van Varnish. Een grondige kennis van het basis HTTP protocol is alvast een must voor je kan beginnen werken met Varnish. We hebben zelf onze standaard Varnish configuraties publiek (om in de sfeer van Open Source te blijven) staan op onze Github pagina: https://github.com/nucleus-be/varnish-3.0-configuration-templates. Deze zijn productie-klaar met meteen alle best-practices van Varnish. Als je aan de slag wil gaan is dat een zeer goede basis. Heb je opmerkingen of verbeteringen? Laat ze ons dan zeker weten.

Edge Side Includes vs. hele pagina cachen

De meest gebruikte vorm van Varnish is diegene waarbij hele pagina’s in de cache komen. Maar hoe complexer uw site wordt, des te complexer meestal ook de caching strategie. Een typisch voorbeeld is een webpagina waar je als ingelogde gebruiker bovenaan een persoonlijke begroeting hebt, als ‘Hallo, {gebruikersnaam}’. Die persoonlijke begroeting maakt die pagina eigenlijk uniek voor u als bezoeker, maar de nieuwsberichten die getoond worden zijn mogelijk wel identiek aan die van een anonieme bezoeker. Edge Side Includes of ESI maakt het mogelijk om sommige stukken van een pagina te cachen en andere dynamisch te houden. Zo krijgt u het beste van beide werelden: de inhoud die voor zowel anonieme als ingelogde gebruikers toch hetzelfde is moet niet telkens berekend worden en tegelijk krijgt u de kracht van gepersonaliseerde pagina’s. Nog meer weten over ESI, full-page caching, key/value stores en meer? Lees dan onze pagina’s over caching en scalability.

Amai, da’s complex?

We ontkennen het niet, Varnish is complex. Wij hebben er meerdere jaren ervaring mee en zijn er meer dan vertrouwd genoeg mee om u alle ondersteuning te bieden die u nodig heeft. Bent u geïnteresseerd in wat Varnish kan betekenen voor uw site of server? Laat het ons even weten, we praten over de verschillende opties van caching en zorgen er mee voor dat uw website(s) razendsnel zijn en blijven. Wil je nog meer weten over snelle websites? Lees dan ook onze blogpost over “Memcached: wie, wat en waar?” voor nog meer tips.

Gerelateerde berichten
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

de publieke, de private of de hybride cloud

Kiezen tussen de publieke, de private of de hybride cloud?

Je bent overtuigd van de voordelen van de cloud en je weet wat je wil. Maar kies je dan voor de publieke, de private of de hybride cloud?

Lees meer

waarom zou je kiezen voor cloud hosting

Waarom zou je voor cloud hosting kiezen?

Steeds meer organisaties migreren hun hardware en software geheel of gedeeltelijk naar de cloud. Waarom maken steeds meer bedrijven die keuze?

Lees meer