/
Pack Hosting Panel

Varnish opzetten

Hoe schakel ik varnish in bij Hipex?


Varnish is een http-accelerator reverse proxy en vangt requests op voordat deze naar PHP gaan. Bij een eerste request stuurt varnish deze door en handelt de server het request af. Het resultaat wordt opgeslagen in varnish en bij een tweede gelijke request wordt direct uit de cache van Varnish beantwoordt en daarmee de php/sql/hhvm belasting van de server voorkomen.

Bij Hipex bieden we je de mogelijkheid om Varnish eenvoudig te configureren en beheren met behulp van de Hipex CLI. De Hipex CLI commando's voor Varnish zijn dan ook automatisch voor iedere Hipex omgeving beschikbaar om te kunnen gebruiken.

Varnish wordt geconfigureerd per domein. Op een server kunnen meerdere instanties van Varnish draaien. In dit artikel leggen we je uit hoe je vide de Hipex CLI tools Varnish inschakeld.

Configuratie

Om Varnish in te kunnen stellen dien je [ingelogd] te zijn op de betreffende server. Je kan vervolgens gebruik maken van het volgende commando om varnish te configureren:

hipex varnish:setup

Als parameter kan je eenvoudig de hoeveelheid geheugen meegeven dat varnish mag gebruiken. Je kan gebruik maken van de --allowed_memory parameter, de standaard hoeveelheid is 256 MB.

Voor een shop met veel pagina's kan dit opgehoogd worden. Let op Teveel geheugen toewijzen kan voor ernstige problemen zorgen omdat onderdelen zoals MySQL, Redis of andere diensten dan mogelijk niet meer genoeg geheugen toegewezen krijgen. Verhoog dit dus altijd met kleine stapjes en monitor goed of Varnish te veel of te weinig geheugen heeft.

In onderstaand commando stellen we varnish in met een geheugengebruik van 1024 MB (= 1 GB).

hipex varnish:setup --allowed_memory 1024

Wanneer varnish al opgezet is, kan je gebruikmaken van het varnish:manage commando. Onderstaand hogen we het geheugen op naar 1024 MB:

hipex varnish:manage --memory 1024

Inschakelen

Wanneer varnish is geconfigureerd kan deze worden ingeschakeld. Hiervoor kan je gebruik maken van het volgende commando:

hipex varnish:enable

Applicatie & SSL offloading

Omdat na inschakelen van Varnish requests niet meer rechtstreeks via https bij je applicatie terecht komen ziet PHP deze requests standaard niet meer als http requests. Als je ook in de applicatie in dergelijke gevallen een redirect naar https doet krijg je dus een oneindige redirect loop. Specifiek staat de PHP server variable $_SERVER['HTTPS] dus niet meer op "on".

De meeste moderne applicaties kijken voor een dergelijke redirect niet meer alleen naar de server variable $_SERVER variable maar ook naar de SSL offload header. Indien dit niet het geval is kun je aan je entry point (meestal index.php) dit stukje PHP code toevoegen.

if (isset($_SERVER['HTTP_SSL_OFFLOADED'])) {
    $_SERVER['HTTPS'] = 'on';
}

Varnish commando's

Om meer grip en monitoring te krijgen op de requests die via Varnish verlopen kunnen we een aantal commando's toevoegen. Voeg hiervoor de volgende regels onderaan het ~/.bash_aliases bestand toe. Na deze toevoeging moet er opnieuw ingelogd worden om de commando's te kunnen gebruiken.

alias varnishadm="varnishadm -n ~/domains/<domein>/var/run/"
alias varnishhist="varnishhist -n ~/domains/<domein>/var/run/"
alias varnishlog="varnishlog -n ~/domains/<domein>/var/run/"
alias varnishncsa="varnishncsa -n ~/domains/<domein>/var/run/"
alias varnishreload="varnishreload -n ~/domains/<domein>/var/run/"
alias varnishstat="varnishstat -n ~/domains/<domein>/var/run/"
alias varnishtop="varnishtop -n ~/domains/<domein>/var/run/"