Varnish caching

Let op: het aanpassen van de caching instellingen kan gevolgen hebben op je website. Pas deze instellingen daarom alleen aan als je inhoudelijke kennis hebt over wat deze instellingen doen. Neem anders contact op met je websitebouwer of onze helpdesk.

Op onze servers is Varnish caching actief. Deze caching zorgt ervoor dat je website vele malen sneller geladen kan worden in de browser van de bezoeker. Standaard cached Varnish de statische onderdelen van je website 10 minuten. De caching kan je beïnvloeden met "Expires" en "Cache-Control" regels in je htaccess bestand. Ook de browser van de bezoeker zal zich hier aan houden.

Caching instellen

Expires headers

Met Expires regels bepaal je per type bestand hoe lang het bestand in de cache bewaard mag blijven. Daarna zal zowel de Varnish-cache en browser-cache het bestand opnieuw laden. Het volgende voorbeeld werkt op basis van de MIME-type van het bestand.

<IfModule mod_headers.c>
  ExpiresActive On
  ExpiresDefault access plus 10 minutes
  ExpiresByType text/html access plus 10 minutes
  ExpiresByType image/x­icon access plus 1 week
  ExpiresByType application/x­javascript access plus 1 week
  ExpiresByType text/css access plus 1 week
  ExpiresByType image/gif access plus 1 week
  ExpiresByType image/png access plus 1 week
  ExpiresByType image/jpeg access plus 1 week
  ExpiresByType text/plain access plus 1 week
  ExpiresByType application/x­shockwave­flash access plus 1 week
  ExpiresByType video/x­flv access plus 1 week
  ExpiresByType application/pdf access plus 1 week

</IfModule>

Ook kan je regels instellen op basis van de bestandsextensie. Voorbeeld:

<IfModule mod_headers.c>
  ExpiresActive On
  ExpiresDefault access plus 10 minutes
  <FilesMatch \.(html|xhtml|xml|shtml|phtml|php|txt)$>
     ExpiresDefault access plus 10 minutes
  <FilesMatch>
</IfModule>

Cache-Control headers

Met Cache-Control Header vertel je tussenliggende proxy-systemen hoe lang bestanden gecached mogen worden. Daarnaast zijn er nog meer parameters aan te geven voor nog betere afhandeling van de cache.
Ook dit kan je weer per bestandsextensie specificeren.

<IfModule mod_headers.c>
  <FilesMatch \.(html|xhtml|xml|shtml|phtml|php|txt)$>
    Header set Cache-­Control "max-­age=600"
    Header set Cache­-Control "public, no-­transform"
  </FilesMatch>
  <FilesMatch \.css$>
  Header set Cache­-Control "max­-age=604800"
  Header set Cache­-Control "public, no­-transform"
  </FilesMatch>
  <FilesMatch \.js$>
    Header set Cache­-Control "max­-age=604800"
    Header set Cache­-Control "public, no­-transform"
  </FilesMatch>
  <FilesMatch \.(bmp|png|gif|jpe?g|ico)$>
    Header set Cache-­Control "max­-age=604800"
    Header set Cache-­Control "public, no­-transform"
  </FilesMatch>
  <FilesMatch \.(eot|ttf|otf|svg)$>
    Header set Cache-­Control "max­-age=604800"
    Header set Cache­-Control "public, no­-transform"
  </FilesMatch>
<FilesMatch \.(swf|pdf|doc|rtf|xls|ppt)$> Header set Cache­-Control "max-­age=604800" Header set Cache­-Control "public, no­-transform" </FilesMatch> <FilesMatch \.(flv|wmv|asf|asx|wma|wax|wmx|wm)$> Header set Cache­-Control "max­-age=604800" Header set Cache­-Control "public, no­-transform" </FilesMatch> </IfModule>

 

PHP output cachen
Met de cache-control headers kan je ook de output van PHP cachen. Dit betekend echter wel dat wijzigingen op je website (zoals een nieuw artikel, menu-item of webshop product) pas na het verlopen van de cache actief worden! Bedenk daarom goed hoe snel wijzigingen zichtbaar moeten worden.

<IfModule mod_headers.c>
<FilesMatch \.(html|xhtml|xml|shtml|phtml|php|txt)$>
Header set Cache-­Control "max-­age=600"
Header set Cache­-Control "public, no-­transform"
</FilesMatch>
</IfModule>

Combinatie

Het is mogelijk om "expires" en "cache-control" headers regels te combineren. Voorbeeld:

ExpiresActive On
<IfModule mod_headers.c>
<FilesMatch \.(html|xhtml|xml|shtml|phtml|php|txt)$>
Header set Cache-­Control "max-­age=600"
Header set Cache­-Control "public, no-­transform"
</FilesMatch>
</IfModule>

Caching uit zetten

In sommige situaties kan het goed zijn de caching tijdelijk uit te zetten. Bijvoorbeeld als je de website aan het ontwikkelen bent en veel wijzigingen maakt. Dan is het vervelend als je telkens moet wachten voordat je de wijzigingen kan bekijken.

Hiervoor kan je alle bestaande regels uitschakelen door ze uit je htaccess te verwijderen of er een hekje ( # ) voor te zetten. Daarna kan je de volgende regel aan je htaccess bestand toevoegen om de caching uit te schakelen:

<IfModule mod_headers.c>
Header set Cache-Control "max-age=0, private, no-cache, no-store, must-revalidate"
</IfModule>

Mijndomein adviseert je de caching niet standaard uit te zetten. Caching heeft een zeer positieve invloed op de laadtijd van je website en is daarom erg belangrijk voor de beleving van de bezoeker van je website.

Was dit artikel nuttig?