Varnish is een HTTP-accelerator en is op vele manieren te configureren. In deze handleiding wordt Varnish als cache voor statische bestanden (CSS, Javascript, JPG afbeeldingen) geconfigureerd zodat deze direct uit de cache geserveerd worden.
Apache
Voordat Varnish voor Apache geïnstalleerd wordt moeten in Apache eerst een aantal parameters aangepast worden.
- In /etc/apache2/ports.conf
Verander Listen 80 naar Listen 192.168.1.100:8080 - In /etc/apache2/sites-enabled/*.conf
Verander in elk *.conf <VirtualHost *:80> naar <VirtualHost 192.168.1.100:8080>
Op deze manier zijn alle websites via Apache nog bereikbaar door :8080 achter de URL te zetten en zo de cache te omzeilen.
Herstart Apache om de wijziging door te voeren:
service apache2 restart
Varnish
Installeer Varnish en open het bestand varnish in de map /etc/default/
Scroll naar beneden totdat de volgende regels verschijnen:
DAEMON_OPTS="-a :6081 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G"
Verander deze regels naar:
DAEMON_OPTS="-a 192.168.1.100:80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G"
Varnish zal nu naar het IP 192.168.1.100 luisteren op poort 80.
Sla de wijziging op en open het bestand default.vcl in de map /etc/varnish/
Daarna moet de backend geconfigureerd worden. De backend is de server waar Varnish al het verkeer naartoe zal sturen als hij niet aan een aanvraag kan voldoen.
Voeg hier het IP van de achterliggende webserver toe:
backend default { .host = "192.168.1.100"; IP-adres van achterliggende webserver .port = "8080"; Poort van de achterliggende webserver }
In dit geval is het een Apache webserver die draait op het IP adres 192.168.1.100 en luistert naar poort 8080.
Verander sub vcl_recv als volgt:
sub vcl_recv { if (req.url ~ "\.(js|css|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf)$") { return (lookup); } }
en verander sub vcl_fetch als volgt:
sub vcl_fetch { if (req.url ~ "\.(js|css|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf)$") { unset beresp.http.set-cookie; } }
Sla de wijziging op en herstart Varnish
service varnish restart
Bezoek nu een aantal keer de website waarop Varnish is geconfigureerd om de cache met afbeeldingen te vullen.