Apache logide seadistus
Koostaja
Andres Elliku
Kevad 2013
Viimati muudetud: 08.04.2013
Sissejuhatus
Pärast Varnishi installi edastakse kõik päringud Apache serverile läbi Varnishi seega tüüpinstalli puhul näeb Apache mitte kliendi ip aadressi vaid Varnishi ip-d mis tihtipeale on localhost aadress. Järgnevad Varnishi ja Apache konfiguratsiooni muudatused võimaldavad acces ja error logides näha reaalset kliendi ip aadressi.
Eeldused
Antud lahendus on testitud ja töötav Ubuntu 12.04 LTS versiooniga. Paigaldatud on ka Wordpress ja Varnish.
Eelduseks on töötav Wordpressi ja Varnshit kasutav leht. Kui seda tehtud pole, siis seda kirjeldab
WordPress turvamise labor. https://wiki.itcollege.ee/index.php/WordPress_turvamine ning
Varnishi seadistamise labor. https://wiki.itcollege.ee/index.php/Varnish
Logimine
Access.log
Veebilehe külastamisi saab jälgida access.logist:
nano /var/log/varnish/access.log
Juhend, näitamaks Apache logides kliendi IP aadressi, mitte Varnishi serveri ip aadressi
Muudatused Varnishi konfiguratsioonis
Lisada oma varnish konfiguratsiooni .vcl faili järgnevad read:
Näiteks:
nano /etc/varnish/default.vcl
sub vcl_recv { # Add a unique header containing the client address remove req.http.X-Forwarded-For; set req.http.X-Forwarded-For = client.ip; # [...] }
Taaskäivita Varnish
service varnish restart
Error.log
Esmalt installida apache moodul:
apt-get install libapache2-mod-rpaf
Failis: /etc/apache2/mods-available/rpaf.conf
<IfModule mod_rpaf-2.0.c> RPAFenable On RPAFsethostname On RPAFproxy_ips 127.0.0.1 ::1 192.168.56.201 192.168.56.200 RPAFheader HTTP_X_FORWARDED_FOR </IfModule>
Apache pool
Lisada vajalikud moodulid Apache jaoks.
Tuleb luua uus fail /etc/apache2/conf.d/varnishlog.conf
Näiteks:
nano /etc/apache2/conf.d/varnishlog.conf
Ning sellesse faili lisada järgnevad read:
LogFormat "%{X-Forwarded-For}i %l %u %t \\"%r\\" %\>s %b \\"%{Referer}i\\" \\"%{User-Agent}i\\"" varnishcombined
Enda virtualhost konfiguratsioonis muutke logi vorming varnishcombined-ks. Muudetav virtualhosti konfiguratsioon peaks siis kuuluma Wordpressi ja Varnishit kasutavale saidile.
Antud näite puhul:
nano /etc/apache2/sites-available/wp
<VirtualHost *:80> ServerName wp.hydra.ae # [...] CustomLog ${APACHE_LOG_DIR}/access.log varnishcombined # [...] </VirtualHost>
Tehke Apache teenusele taaskäivitus:
service apache2 restart
Tulemuse kontroll
Ühenda kliendiga veebiserveri külge ja vaata apache access.log faili, mis ip logitakse
Access.log faili puhul piisab ainult veebilehe värskendamisest.
tail -f /var/log/apache2/access.log
Error.log fail puhul on mõtekas pärida veebisaidilt olematut kausta või lehte.
Näiteks: wp.hydra.ae/gkdrögrödg/
Ning jälgida apache error.log faili.
tail -f /var/log/apache2/error.log
Mõlemal juhul peaksid logi kirjete alguses olema kuvatud päringut tegeva kliendi IP aadress, mitte Varnishi serveri IP aadress.
Kasutatud materjal
1. Varnish juhend: https://wiki.itcollege.ee/index.php/Varnish
2. mod_rpaf not recognising RPAFheader setting: http://serverfault.com/questions/486977/mod-rpaf-not-recognising-rpafheader-setting