Elk bedrijf wil voor bezoekers van zijn site of shop een prettige en snelle ervaring. Een snellere website zorgt ervoor dat mensen meer bestellen, meer informatie aanvragen of fijner hun zaken met het bedrijf digitaal afhandelen. Iets wat je ook niet wilt laten gebeuren is dat jouw site plat gaat bij media aandacht, campagnes of gewoon groot succes. Door social media en e-mailmarketing wordt het gedrag qua bezoekerspieken steeds grilliger. En dat terwijl de resultaten van de site of shop vaak steeds belangrijker worden, voor veel bedrijven is de site inmiddels het primaire communicatie of commerciële kanaal. De site moet het altijd doen.

Byte heeft daarom Clusterhosting met Varnish ontwikkeld. Een technisch geavanceerd systeem, gebaseerd op onze Cluster techniek, gecombineerd met de cache methode Varnish. Zo zijn sites supersnel (< 100ms) en kunnen ook grote verkeerspieken (100.000 bezoekers per dag) aan. Ook Google vindt het heel belangrijk dat sites snel zijn en geeft snelle sites een boost in de resultaten.

Wat maakt Clusterhosting met Varnish zo cool?

Varnish is een cache die voor de site geplaatst wordt. Alle verzoeken worden dus eerst door Varnish afgehandeld. Als Varnish voor het request antwoord heeft, wordt deze direct verzonden naar de bezoeker en zal het request niet worden doorgezet naar de (relatief langzame) webserver. Een pagina uit de cache is tot 100x sneller dan een normale pagina. Dit levert de volgende resultaten:

  • Bezoekerspieken worden makkelijker afgevangen, omdat er veel verzoeken middels de cache afgehandeld worden en daardoor de webservers het minder druk krijgen.
  • Het bezoeken/navigeren op je site gaat sneller, waardoor bezoekers meer bestellen, meer informatie aanvragen of fijner hun zaken met het bedrijf digitaal afhandelen.
  • Pagina’s worden sneller geladen waardoor je een hogere waardering bij Google en andere zoekmachines krijgt. Des te hoger, des te beter je scoort in de zoekresultaten van de zoekmachine.

Voor wie en wat kun je verwachten?

Byte Varnish Cluster is voor iedereen die meer snelheid of capaciteit wil. Afhankelijk van je technische kennis kun je meer of minder laten cachen. De simpele versie is met één klik te activeren en versnelt plaatjes en layout. En met een kleine tijdsinvestering (30 minuten tot enkele uren) is ook dynamische content te cachen, waardoor dus de hele site supersnel draait!

Bij Byte kun je vanaf het pakket ‘Performance Hosting’ gebruik maken van Varnish. De hostingomgeving van dit pakket is uitgerust met een loadbalancer (HA proxy) met hierin SSL-afhandeling en Varnish (dus ook https-pagina’s kunnen in de cache opgenomen worden). Byte kan meerdere van deze loadbalancers naast elkaar draaien om te schalen. Achter de loadbalancers draait een set webservers (+/- 10), zoals ook bij het ‘normale’ Secure Hosting. Files en databases zijn weer afkomstig van onderliggende servers.
Varnish maakt het mogelijk een pagina zeer snel bij de gebruiker te krijgen, omdat data die in de cache zit niet meer door het cluster van servers bij elkaar geraapt hoeft te worden. Dit geldt niet alleen voor content op pagina’s, maar kan ook voordeel opleveren bij bijvoorbeeld plaatjes en javascripts.

Niet alleen het cachen van pagina’s zélf levert snelheidswinst op. Omdat bij een site die met Varnish werkt, minder op de reguliere manier opgevraagd wordt, heeft het cluster veel minder te doen. Een voorzichtige schatting maakt dat 50-90% van de hits kunnen worden afgehandeld door Varnish. Dit zal uiteraard ook doorwerken tot de database- en fileservers; deze krijgen ook minder verzoeken en zullen dus sneller zijn.

Aan de slag met Varnish

Nog even en je site is sneller dan 99% van het internet. Dat voelt goed, toch? Om daar te komen, moet je een paar dingen doen.

Stap 1: Leer hoe het werkt

Varnish zit tussen jouw website en je bezoeker, bewaart content in een cache en kan deze tot 100x sneller naar je bezoekers sturen.
Dat klinkt mooi! Maar let op, er zit natuurlijk een addertje onder het gras. Niet alle content is geschikt om gecached te worden, zoals bijvoorbeeld gepersonaliseerde of geheime pagina’s. In veel gevallen wordt dit door het Byte Varnish Cluster juist gedetecteerd. In sommige gevallen moet je zelf extra instructies geven. We raden dus altijd aan om eerst goed te testen voordat je Varnish activeert!
Om aan de slag te gaan met Varnish, is het erg handig om de HTTP headers te kunnen inzien. Het makkelijkst is om Chrome te gebruiken, dan de Developer Tools te activeren (F12 of ctrl+shft+i of op Windows, Cmd+Opt+iop Mac). Klik op tabblad Network. Refresh (F5) je site. Klik op het eerste request. Klik rechts op mini-tabblad Headers. Hier zie je wat er heen en weer wordt gestuurd tussen jouw browser en de server. Meer weten over HTTP headers?

Stap 2: Controleer geschiktheid

Cache headers

Controleer of je site überhaupt geschikt is voor caching. In de headers die de server terugstuurt (zie hierboven) mag niet Cache-control: no-cacheof Cache-control: private voorkomen. Gebeurt dit wel, dan is er een aantal mogelijke oorzaken:

  1. Je bent ingelogd op de backend van je site en daardoor kan er niet gecached worden. Probeer het opnieuw, maar dan zonder cookies (gebruik een “Incognito” venster met Ctrl-Shift-N). Immers, de meeste bezoekers van je site zullen nietingelogd zijn.
  2. Een externe module van je site gebruikt session_start()van PHP. Deze genereert sowieso een Cache-control: no-cacheheader. Oplossing: verwijder de module, pas de module aan, of installeer een extra module die de Cache-control header weer (dynamisch) verwijdert. Voor Joomla is sowieso een extra module vereist, zie de instructies verderop.
  3. Er is een .htaccessgeinstalleerd die een extra header genereert. Kijk of je deze kunt omschrijven.

Content-Encoding

Omdat Varnish tussen de webservers en de bezoeker staat, is het niet wenselijk dat de webservers alle content gzippen, dit is alleen nuttig tussen Varnish en de bezoeker van de site. Daarnaast zal het gzippen van content in sommige gevallen tot foutmeldingen van Varnish leiden.
Zorg dat zlib.output_compressionuitgeschakeld staat op het servicepanel.

  1. Ga naar ons Servicepanel
  2. Klik op de tab Instellingen. Klik op de knop PHP.
  3. Zet zlib.output_compressionop ‘default’ of ‘off’.
  4. Klik op ‘Instellingen opslaan’.

Stap 3: Installeer benodigde software

De meeste webapplicaties hebben een extra module nodig om correct te kunnen werken. Die zorgt voor twee dingen: allereerst dat de geproduceerde pagina’s worden aangemerkt als geschikt voor caching. En ten tweede, dat wanneer de content wijzigt (bijvoorbeeld in de backend) ook de bijbehorende cache-versie wordt bijgewerkt.
We hebben hier instructies voor de meest gebruikte webapplicaties verzameld:

Als je meer exotische software gebruikt, zul je zelf op zoek moeten naar een Varnish module, of er zelf een maken. Zie voor meer informatie over Varnish voor maatwerk:

Stap 4: Test de nieuwe software

Wanneer je site op een Byte Varnish Cluster staat, kun je eenvoudig testen, zonder dat je wijzigingen direct voor de hele wereld hoeft door te voeren. Je kunt Varnish op een subdomein van je site zetten, je site onder dit subdomein zetten en testen. Hoe je dit doet wordt uitgelegd in het artikel: Varnish op een testomgeving.

Stap 5: Activeer Varnish en laat je concurrenten ver achter je

Op het Byte Service Panel kun je uit drie modi kiezen:

  1. Dynamisch, geoptimaliseerd voor Joomla/Wordpress/Drupal en maatwerk CMSen
  2. Statisch, cache enkel static assets (plaatjes, css)
  3. Uitgeschakeld, cache niets (alle cache staat uit)

De makkelijke modus is de tweede, hiervoor hoef je normaliter niets te wijzigen.

De modus met het beste resultaat is de eerste.

Varnish Cache flushen

Mocht je problemen hebben en vermoeden dat deze voortkomen uit caching dan kan deze geleegd worden via het Byte Service Panel, via de backend van je CMS of via het volgende commando wanneer je met SSH bent ingelogd:

curl -X PURGE http://domein.nl/.*

Met /* geef je aan dat alles van domein.nl gepurged (lees: geflusht) moet worden en wil je bijvoorbeeld alleen blog, dan doe je dus alleen /blog

Veelgestelde vragen over clusterhosting met Varnish

De meestgestelde vragen hebben we uitgewerkt op de pagina Varnish op ons clusterplatform – FAQ.


10