Apache logide seadistus

From EIK wiki

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 Varnishit 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

Mooduli versioon peaks olema 0.6, kuna alates sellest versioonist lisandus RPAFheader käsklus. Versiooni kontrollimiseks saab kasutada käsku:

apt-cache show libapache2-mod-rpaf | grep Version

Kuigi installi ajal peaks moodul automaatselt aktiveeruma, võib vigade korral kontrollida kas see ikkagi toimus.

a2enmod rpaf

Apache versioonis 2.4 ei ole mod-rpaf enam vajalik ja on asendatud mod-remoteip mooduliga

Faili: /etc/apache2/mods-available/rpaf.conf Lisada järgnevad read:


<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