Rendszerüzemeltetéssel foglalkozók illetve azzal kapcsolatban állók jó eséllyel találkoztak már a Varnish1 nevű cache/gyorsítótár megoldás nevével. Jelen bejegyzésünk egy nagyon egyszerű és gyors beállítását mutatja be a rendszernek.
Tegyük fel, hogy már rendelkezünk egy beállított és működő webszerverrel, ezt szeretnénk gyorsítani kicsit. Ez igazából lehet Apache, Nginx vagy bármi, valószínűleg a default 80-as porton fog működni egy adott IP cím mögött - ez utóbbi legyen mondjuk 5.6.7.8 a példában.
- Módosítani kell a default web portot 80-ról pl. 81-re. Nem mennék bele, a használt kiszolgáló beállításainak megfelelően, tetszés szerint...
- Telepítsük a varnish -t. Ez ismét csak "hitvallás" kérdése, de: apt install varnish vagy éppen yum install varnish (epel repo).
- /etc/varnish/varnish.params szerkesztése
- VARNISH_LISTEN_PORT=80
- VARNISH_STORAGE="default=malloc,256M -s static=file,/var/lib/varnish/varnish_storage.bin,1G" - ezt még később részletezem
- /etc/varnish/default.vcl szerkesztése
- backend default {
.host = "5.6.7.8"; #szerverünk külső IP címe
.port = "81"; #webszerverünk módosított portja
} - sub vcl_backend_response {
if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico") {
unset beresp.http.cookie;
set beresp.storage_hint = "static";
set beresp.http.x-storage = "static";
} else {
set beresp.storage_hint = "default";
set beresp.http.x-storage = "default";
}
}
- backend default {
- service apache restart
- service varnish start
- tesztelés, nézegetés böngészőben, közben pedig a varnishstat paranccsal konzolban
Nos akkor ahogy fentebb (3./2. pont) említettem kicsit nézzük meg a konfigunkat!
Alapértelmezetten 256MB Memory ALLOCated cache "partíciónk" van. Szerencsére a Varnish tud kezelni több típusú tárolót is, így én felvettem mellé egy 1GB méretű file típusú static nevű tárat is. Ide vonatkozik a 4./2. bekezdés is, így egy kis magyarázat ahhoz is: itt döntjük el, hogy mi is történjen. A megadott formátumú fájlok a static gyorsítóból kerülnek kiszolgálásra, minden más a defaultból.
Legyen az fizikai vagy virtuális szerver, ilyen szintű beállításokat úgy gondolom, hogy szakmailag mélyebb tudással rendelkezők végeznek. Nem (volt) célom kitérni a webszerverek beállításaira, ahogyan a Varnish további lehetőségeiben sem szeretnék elveszni. Célom sokkal inkább egy egyszerű gondolatébresztő megírása volt, mellyel igen jelentős (akár 50%-os) sebesség növekedés, ez által pedig felhasználói elégedettség érhető el weboldalainkon.
Linkek
1 https://varnish-cache.org/