Source : http://stderr.net/apache/rpaf/
Ce Document a pour but d'expliquer comment faire remonter dans les logs Apache, les IP Clients lorsque Apache est derrière un Proxy Cache.
Notre Proxy Cache est NGINX
Dans chaque VHost de déclarés, il faut ajouter la ligne suivante :
proxy_set_header X-Real-IP $remote_addr;
Exemple :
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.42;
}
Puis il faut que vous redémarriez le proxy cache
# /etc/init.d/nginx restart
Il faut que vous installiez sur le serveur qui servira à compiler, le package contenant les outils de Dev d'Apache
# apt-get install apache2-prefork-dev
Téléchargez le dernier module disponible sur l'URL suivante : http://stderr.net/apache/rpaf/download/
# apxs2 -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
Cela va compiler le module sur votre configuration et va ensuite le copier dans le répertoire contenant tous les modules d'Apache.
Ajoutez les 2 fichiers suivants dans votre configuration Apache :
RPAFenable On # Enable reverse proxy add forward RPAFproxy_ips 127.0.0.1 <IP de votre Proxy Cache> # which ips are forwarding requests to us RPAFsethostname On # let rpaf update vhost settings # allows to have the same hostnames as in the "real" # configuration for the forwarding Apache RPAFheader X-Forwarded-For # Allows you to change which header mod_rpaf looks # for when trying to find the ip the that is forwarding # our requests
LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so
Ensuite, il faut que vous activiez les 2 fichiers afin que Apache les prenne en compte.
# cd /etc/apache2/mods-enabled # ln -s ../mods-available/rpaf.load # ln -s ../mods-available/rpaf.conf
Puis il faut redémarrer Apache
# /etc/init.d/apache2 restart
Maintenant, dans vos logs Apache, vous voyez les IP Client en lieu et place de l'IP du Proxy Cache.