Varnish op ons Magento platform


Tags: Magento

Let op! Deze informatie is bedoeld voor de meer technisch gevorderde lezer. Byte kan hierbij geen technische support leveren. Ben je zelf niet zo technisch? Neem dan contact op met één van onze partners, te vinden op onze Partnerpagina.

Varnish is beschikbaar voor Magento Go Big (Hypernode), Magento Excellence (Hypernode) pakketten en Magento Dedicated Server en Cluster pakketten. Om Varnish te configureren en beheren kun je gebruik maken van de module Turpentine (wordt aangeraden), of je kunt het voor Dedicated Servers en Clusters handmatig doen. Op deze pagina leggen we uit hoe je Turpentine kunt toepassen.

Wil/heb je een Magento 2 shop? Varnish configureren en beheren met Turpentine werkt dan niet. Lees op onze Hypernode Kennisbank hoe je Varnish voor Magento 2 kunt gebruiken.

Stap 1 – Configureer Varnish

Gebruik maken van Turpentine

Download Turpentine

Turpentine installeren via Magento Connect

afb. 1 Turpentine installeren via Magento Connect

Voor het installeren van Turpentine raden we aan gebruik te maken van Magento Connect. Hoe dat precies werkt kun je hieronder lezen:

Let op! Heb je een Hypernode? Gebruik dan Turpentine versie 0.6.4 of 0.6.6. Gebruik je Turpentine 0.6.6? Geef dan expliciet aan dat je Varnish versie 3 gebruikt.

  1. Login de backend van je Magento shop.
  2. Ga naar System -> Magento Connect -> Magento Connect Manager
  3. Vul je admin gegevens in.
  4. Plaats de volgende key in het veld naast Paste extension key to install  : http://connect20.magentocommerce.com/community/Nexcessnet_Turpentine
  5. Klik op Install(zie afbeelding 1).
  6. Klik op Proceed.
  7. De extensie wordt nu geïnstalleerd in je webruimte.
  8. Log uit en opnieuw in om Turpentine beschikbaar te maken in de admin

Leeg de caches van je shop

Nadat de extensie is geïnstalleerd moet je nog de caches van je shop legen. Dit kun je via de backend van je Magento shop doen (System → Cache Management). Zorg er tevens voor dat je FPC cache uitstaat. Dit kan voor problemen zorgen namelijk!

Configureer Turpentine

Nu alle caches geleegd zijn kun je Turpentine configureren. Volg hiervoor de volgende stappen:

    1. Login op het Service Panel.
    2. Klik op je domeinnaam.
    3. Klik op het tabblad Instellingen.
    4. Klik op de optie Varnish (zie afbeelding 2).

Klik op de optie Varnish

afb. 2 Klik op de optie Varnish
    1. Hou de Varnish Cache nu nog op Niet actief staan. Dit is nodig om eerst je shop goed op Varnish te testen voordat je daadwerkelijk er gebruik van gaat maken. Meer informatie over het testen lees je onder het kopje Test eerst de werking van je shop
    2. Klik op Varnish beheren via Turpentine (zie afbeelding 3).

Kies voor Turpentine

afb. 3 Kies voor Turpentine
    1. Bewaar deze pagina. Deze gegevens heb je zo nodig.
    2. Login de backend van je Magento shop.
    3. Ga naar System -> Configuration.
    4. Klik aan de linkerkant op Varnish Optionsonder het kopje Turpentine (zie afbeelding 4).

Klik op Varnish Options

afb. 4 Klik op Varnish Options
  1. Vul nu de volgende gegevens in:
    1. Varnish version: Deze laat je op auto staan.
    2. Varnish server list: Hier plak je de content uit het Service Panel.
    3. Varnish authentication key: Hier plak je de content uit het Service Panel.
  2. Klik op Caching Options onder het kopje Turpentine
  3. Controleer of de volgende gegevens ingesteld staan:
    1. Backend host: Hier moet localhost staan.
    2. Backend port: Hier moet 8080 staan.
  4. Ga naar Systems -> Cache Storage Management.
  5. Zet Varnish Pagesen Varnish ESI Blocks’allebei op ENABLED.
  6. Klik vervolgens op de oranje button onderaan Apply Varnish Config.
  7. Je kunt nu gebruik maken van Varnish.

Handmatig Varnish configureren en beheren

Je bent uiteraard niet verplicht om gebruik te maken van Turpentine. Je kunt immers ook zelf een extensie naar keuze gebruiken. Hiervoor hebben wij een mooie manual optie gemaakt (zie afbeelding 5). Hier moet je handmatig je eigen VCL schrijven en dit dan pushen naar Varnish. Let op! Op het Hypernode platform is het niet mogelijk een VCL te uploaden. Als je een Magento Go Big, Go Big XL of Go Big XXL pakket hebt kun je dus alleen gebruik maken van Turpentine.

Varnish manual mode

afb. 5 Varnish manual mode

Stap 2 – Test goed de werking van je shop!

Varnish testen op een Dedicated Magento Server of Cluster

Test eerst goed de werking van je shop voordat je daadwerkelijk de Varnish Cache op Actief zet. Het kan namelijk gebeuren dat een template/plugin binnen je shop niet goed werkt met Varnish en dat dan je shop kapot gaat of je hebt een upgrade van een Dedicated Magento Server, naar een Dedicated Magento Cluster gehad. Dan dien je bij “Varnish server list” (zie stap 11.2 onder het kopje Turpentine) de naam te veranderen.

De beste manier om je Varnish te testen is door het op een testomgeving te doen. Op deze manier heeft het sowieso geen effect op je livesite.

Varnish testen op het Hypernode platform

Een testomgeving creëren op het Hypernode platform kan met behulp van Vagrant Image of door je shop te klonen op een tweede node. We raden je aan gebruik te maken van Vagrant, omdat het een snellere methode is. Voor Hypernode is het ook mogelijk een standaard staging omgeving te maken, maar dit is geen goede manier om Varnish te testen en raden we dus ook af.

Lees meer over:

Stap 3 – Alles getest? Activeer dan pas Varnish

Wanneer je klaar bent met het testen van je site op Varnish en alles werkt naar behoren, dan kun je de Varnish Cache in het Service Panel op Actief zetten. Hierna zal Varnish alle informatie opslaan in zijn eigen cache. Er hoeft hierna alleen nog maar verbinding met Apache gemaakt te worden, wanneer Varnish data moet hebben dat nog niet in zijn eigen cache opgeslagen staat. Hierdoor zal je website vele malen sneller worden.

Gebruik Google Analytics voor je statistieken

Wanneer je Varnish Caching gebruikt komen de requests voor je webshop bij Varnish uit en niet op Apache. Hierdoor zullen de statistieken in ons Service Panel niet overeen komen met de exacte waarden van het aantal bezoeken op jouw website. Tevens zullen onze access logs ook niet de correcte data weergeven, want onze tooling haalt deze informatie bij Apache op.

Wil je toch nog weten hoeveel bezoekers je daadwerkelijk op je site krijgt, maak dan gebruik van Google Analytics.Op deze manier kun je van de voordelen van varnish blijven genieten maar heb je wel een mooi overzicht hoeveel bezoekers er nog op je site komen.

Hulp nodig bij de implementatie van Varnish?

Onze partner Supportdesk heeft in een aantal gastblogs wat testen gedaan hoe Magento precies werkt/draait op Varnish. Hieronder kun je lezen wat hun bevindingen zijn:

De implementatie van Varnish op je Magento shop kost vele developmenturen en we raden je dan ook aan om hier een van onze partners voor te benaderen. Via de pagina Over Byte > Partners krijg je een overzicht van alle partijen met wie wij samenwerken. Zij kunnen jou helpen met het implementeren van Varnish.

Veelvoorkomende problemen

Dynamische blokken werken niet

Dit is een bekend probleem waarvan de oorzaak (in de meeste gevallen) bij de samenwerking van Turpentine met het gebruikte template ligt.

Oorzaak: Turpentine heeft een layout file genaamd turpentine_esi.xml. In deze file staat de configuratie voor de blokken die dynamisch ingevuld moeten worden en wanneer de blokken opnieuw geladen moeten worden. Tegelijkertijd wijzigen de meeste templates de layout van Magento om deze zelf opnieuw in te vullen. Dit doen ze door de volgende code in de layout files van het template te plaatsen: unsetChild. Deze code zorgt ervoor dat alle waarden van het blok gereset worden. Dit resetten gebeurt dus ook als er door de Turpentine module waarden zijn toegekend aan dit blok om ‘m dynamisch te maken. Resultaat: de dynamische blokken worden statisch geladen in plaats van dynamisch.

Oplossing: Gelukkig is dit vrij gemakkelijk op te lossen.

  1. Open de eigen local.xml van het template. Is deze file er niet, maak deze dan aan.
  2. Bekijk in alle layout files van het template of en zo ja welke unsetChild er gebruikt wordt.
  3. Zoek hetzelfde blok op binnen de turpetine_esi.xml file (<reference> </reference>) en kopieer deze naar de local.xml van het template (onderaan).
  4. Leeg de cache.

Lees er mee over op ons blog.

0