Viimeisenä kurssin tehtävänä tartun toimeen asentaa webbi-palvelimelleni Varnishin tehostamaan palvelimen suorituskykyä. Varnish on itse asiassa välimuisti, tällöin esim kuvat yms sivun staattinen sisältö haetaan välimuistista eikä kannasta, jolloin sivujen suorituskyky nousee huomattavasti.
Asennus- ja käyttöohjeet haen Varnishin sivuilta: https://www.varnish-cache.org/
Ensin päivitän paketit ja sitten asennan Varnishin:
$ sudo apt-get install varnish
Varnishin asennus onnistuu nätisti ja asennettu versio on 2.1.0-2ubuntu0.1. Varnishin nettisivuilla olisi ollut tarjolla 3.0.2-versiokin, mutta menköön nyt tällä.
Setting up varnish (2.1.0-2ubuntu0.1) …
* Starting HTTP accelerator
Seuraavaksi konffataan /etc/varnish/default.vcl -tiedostoa, jossa määritetään Varnishin backend palvelin. Muutamme portin ohjeiden mukaan 8080 -> 80:
# Default backend definition. Set this to point to your content
# server.
#
backend default {
.host = ”127.0.0.1”;
.port = ”80”;
}
Seuraavaksi varmistan ettei varnishin prosessi varnishd ole päällä:
§ sudo pkill varnishd
Starttaan Varnishin muutamilla parametreilla varustettuna:
§ sudo varnishd -f /etc/varnish/default.vcl -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:8080
-f kertoo mistä default-konffis haetaan, -s kertoo tallennustyypin sisällölle, -T aktivoi Varnishin komentopohjaisen hallintatyökalun ja -a että sisääntuleville http-kutsuille käytetään porttia 8080.
Vastauksena saan ao. rivit (2 kpl), joten lähti kaiketi pyörimään:
storage_malloc: max size 1024 MB.
Using old SHMFILE
Näillä perustein ei voi sanoa paljon mitään Varnishin toiminnasta, varsinkin kun ajettava sivu on perus-kökkö-testi-sivu. Tarkistan lokit.
Varnishilla on oma loki-sovelluksensa Varnishlogs. Käynnistän sen terminaalista komenolla:
§ varnishlog
Terminaaliin ilmestyy ao. ping pong-viestejä ilmoittaen Varnishin päällä olemisesta.
0 CLI – Rd ping
0 CLI – Wr 200 PONG 1331653734 1.0
Ohje neuvoo vielä päivittämään testisivuani, jolloin terminaaliin pitäisi ilmestyä muutakin tekstiä. Ja sehän toimii!
11 SessionOpen c 127.0.0.1 33172 0.0.0.0:8080
11 ReqStart c 127.0.0.1 33172 658134849
11 RxRequest c GET
11 RxURL c /
11 RxProtocol c HTTP/1.1
11 RxHeader c Host: localhost:8080
11 RxHeader c User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.04 (lucid) Firefox/3.6.18
11 RxHeader c Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
11 RxHeader c Accept-Language: en-us,en;q=0.5
11 RxHeader c Accept-Encoding: gzip,deflate
11 RxHeader c Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
11 RxHeader c Keep-Alive: 115
11 RxHeader c Connection: keep-alive
11 RxHeader c If-Modified-Since: Sat, 18 Feb 2012 07:50:14 GMT
11 RxHeader c If-None-Match: ”14349b-11b-4b9384fc23e81”
11 RxHeader c Cache-Control: max-age=0
11 VCL_call c recv
11 VCL_return c lookup
11 VCL_call c hash
11 VCL_return c hash
11 VCL_call c miss
Kiitokset mielenkiintoisesta kurssista! Toivottavasti se keskitetty hallinta tms Linux/Unix-kursseja saataisiin myös iltatoteutuksiin 🙂