Wat is Varnish?
Wat Varnish is
Varnish cache is een open source cachingproxy die voor de webserver staat. Het ontvangt verzoeken van bezoekers, kijkt of het antwoord al klaarstaat en levert dat direct als dat zo is. Pas bij een miss stuurt Varnish het verzoek door naar de achterliggende server.
Varnish wordt vaak ingezet bij sites met veel verkeer en veel herhaalde pagina's, zoals grotere nieuwssites en webshops met veel productpagina's. De configuratie gebeurt in een eigen taal, VCL, waarin je bepaalt wat er gecachet mag worden en hoe lang. Het is een reverse proxy in de zin van wat een reverse proxy doet.
Hoe een cachingproxy werkt
Varnish bewaart antwoorden in het werkgeheugen van de server. Bij een nieuw verzoek kijkt het naar de URL en andere kenmerken en zoekt het of er een geldige kopie is. Die zoekactie is veel sneller dan het opnieuw laten draaien van PHP en de database, en juist daardoor kan één server veel meer verzoeken aan.
De open source versie van Varnish handelt geen HTTPS af. Daarvoor zet je meestal een aparte laag ervoor die de versleutelde verbinding afhandelt en daarna doorstuurt naar Varnish. Dat maakt de opzet complexer dan bij een standaard webserver.
Wat Varnish van je omgeving vraagt
Varnish vraagt meer kennis van de omgeving dan een gewone plugin. Je moet de cacheregels zorgvuldig instellen, anders krijgen ingelogde gebruikers of winkelwagens verkeerde pagina's. Ook het legen van de cache, de purge, moet goed zijn geregeld zodat wijzigingen direct zichtbaar worden. Let op dat een fout in de configuratie meteen zichtbaar is voor alle bezoekers.
Het is daarom vooral zinvol als je ervaring hebt met serverbeheer of met een partij die dat voor je doet. Voor een eenvoudige website met weinig verkeer is de winst vaak klein. Voor een lichtere variant op paginaniveau lees je wat paginacaching is.
Veelgestelde vragen
Is Varnish hetzelfde als een reverse proxy?
Varnish is een reverse proxy met een cachefunctie. Het staat voor de webserver en neemt verzoeken aan namens die server. Niet elke reverse proxy cachet, en niet elke cache is een reverse proxy. Varnish combineert de twee rollen, en daarom wordt het vaak in één adem genoemd met reverse proxies.
Kan ik Varnish gebruiken met WordPress?
Dat kan, maar het vraagt configuratie. Ingelogde gebruikers en winkelwagens moeten buiten de cache blijven, en de regels daarvoor moet je zelf beheren. Heb je die kennis niet, dan is een cachingplugin of een andere oplossing vaak eenvoudiger. Een alternatief op serverniveau is LiteSpeed Cache, maar dat werkt alleen op een LiteSpeed-server.