Suoritin tehtävän koulun läppärillä (hp 2560p) käyttäen live USBia. Käyttöjärjestelmänä toimi Xubuntu 12.10.
Varnishin asentaminen
Aluksi työpöytäni avauduttua asetin näppäimistöni suomeksi, ja hain uusimmat päivitykset
setxkbmap fi
sudo apt-get update
Päivitysten asennuttua asensin apache-weppipalvelimen ja varnish-http kiihdyttimen.
sudo apt-get install apache2
sudo apt-get install varnish
Testailuni kohteena päätin käyttää omaa wordpress sivustoani.
Varnishin asetukset
Halusin siirtää Varnishin apachen eteen. Siirryin varnishin asetuksiin muokkaamaan default.vcl tiedostoa
cd /etc/default/varnish
sudo nano varnish
Muokkasin tiedostoa niin, että se kuuntelee oletus HTTP-porttia
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Tämän jälkeen siirryin muokkaamaan VCl-tiedostoa oikeanlaiseksi.
sudo nano /etc/varnish/default.vcl
Muutin hostin ip-osoitetta ja porttia.
backend apache { .host = "127.0.0.1"; .port = "8000";
Ongelmia ja ratkaisuita
Seuraavaksi päätin kokeilla toimiiko localhost-sivuni.
sudo a2enmod userdir
localhost/~xubuntu/wordpress
Sain eteeni sivun "503 Service Unavailable - varnish cache server"
Tämän jälkeen koitin uudelleenkäynnistää varnishin
sudo /etc/init.d/varnish restart
Päätin lähteä tutkimaan apachen asetuksia.
sudo nano /etc/apache2/ports.conf
Muutin tietoja seuraavasti
NameVirtualHost *:8000 Listen 127.0.0.1:8000
Muutin myös apachen sites enabled kansiossa virtual hostin tietoja.
sudo nano /etc/apache2/sites-enabled/000-default
Vaihdoin virtual hostin nimeksi <VirtualHost *: 8000>
Uudelleenkäynnistin varnishin ja yritin yhdistää localhost/~xubuntu/wordpress sivulle. Tällä kertaa yhdistäminen onnistui.
Päätin kokeilla apache benchillä, nopeutuuko sivuni lataus mikäli varnish on päällä.
Aluksi sammutin varnishin sudo /etc/init.d/varnish stop jonka jälkeen kokeilin wordpressiin yhdistämistä. Laitoin pyyntöjen määräksi 200 ja samanaikaisten pyyntöjen määräksi 100.
ab -n 200 -c 100 localhost/~xubuntu/wordpress
Muutaman testauskerran keskiarvoksi sain noin 0.023 sekuntia.
Tämän jälkeen laitoin varnishin päälle ja kokeilin apache benchiä samoilla luvuilla.
sudo /etc/init.d/varnish restart
ab -n 200 -c 100 localhost/~xubuntu/wordpress
Tällä kertaa sain ajaksi keskimäärin 0.015 sekuntia. Otaksuin näin ollen varnishin toimivan.
Mainittakoon vielä, ettei testeissäni tullut yhtään "failed" pyyntöä.
VCl asetusten säätö
Päätin että haluan muuttaa serverini niemä apachesta johonkin muuhun.
Tutkittuani asiaa, löysin että tämä on mahdollista muokkaamalla kohtaa VCL-tiedostossa kohdan "fetch" jälkeen.
Lisäsin seuraavan.
unset obj.http.Server;
set obj.http.Server = "Olenkuningas";
Yslow
Seuraavaksi siirryin Yslow-liitännäisen asennukseen. Liitännäinen tarvitsi ilmeisesti toimiakseen myös Firebug-liitännäisen, joten asensin sen ensimmäiseksi selaimeeni. Asennusten jälkeen restarttasin Firefoxin.
Menin seuraavaksi wordpress-sivustolleni ja kokeilin Yslow liitännäistä.
Painoin "run test" nappulaa. Sain tulokseksi:
Overall performance score 94 | Ruleset applied: YSlow(V2) | URL: http://localhost/~xubuntu/wordpress/ |
Yslow suositteli minun vähentämään kompontenttien määrää wordpress-sivustollani ja pitämään keksien määrän alhaisena.
Lopputulos
Sain varnishin hyvin toimimaan, muutettua VCL-asetuksia ja mittailtua sivuani Yslow-liitännäisellä. Tehtävään kului noin neljä tuntia.
Lähteet:
http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013
http://www.howtoforge.com/putting-varnish-in-front-of-apache-on-ubuntu-debian
http://httpd.apache.org/docs/2.2/programs/ab.html