Varnish problème AWSTAT mod_rpaf.

Vous avez un VPS ou serveur dédié , vous avez installé Varnish comme cache car votre site avez du mal a absorber les visiteurs ? , vous avez totalement raison, mais il faut savoir que AWSTATS ne fonctionne pas de base avec Varnish.

Si vous avez installé Varnish AWSTATS vous montrera le genre de log suivant :

[caption id="attachment_1609" align="alignnone" width="300"]Varnish problème AWSTAT mod_rpaf Varnish problème AWSTAT mod_rpaf[/caption]

 

 

Vous remarquerez la série de 1 à la place du nombre de visite.
Pour palier a cela nous allons utiliser le mod_rpaf ce module apache vous permet de remplacer l'adresse ip du client dans l'entête des requêtes HTTP.
Cela est bien pratique quand vous avez un reverse proxy avant le VPS ou serveur dédié.

Vous allez trouver sur internet pas mal de tutorial pour installer le mod_rpaf mais il ne fonctionne plus ! je vous donne l'astuce afin de l'installer.

 

Pour commencer nous allons télécharger  mod_rpaf :

 cd /usr/local/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6

 

 

En installant le mod_rpaf vous allez avoir ce problème :

/usr/local/httpd-2.4.3/build/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic   -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/httpd-2.4.3/include  -I/usr/local/httpd-2.4.3/include   -I/usr/local/httpd-2.4.3/include   -c -o mod_rpaf-2.0.lo mod_rpaf-2.0.c && touch mod_rpaf-2.0.slo
mod_rpaf-2.0.c: In function 'rpaf_cleanup':
mod_rpaf-2.0.c:150: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c:151: error: 'conn_rec' has no member named 'remote_addr'
mod_rpaf-2.0.c:151: warning: implicit declaration of function 'inet_addr'
mod_rpaf-2.0.c:151: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c: In function 'change_remote_ip':
mod_rpaf-2.0.c:164: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c:183: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c:186: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c:187: error: 'conn_rec' has no member named 'remote_addr'
mod_rpaf-2.0.c:187: error: 'conn_rec' has no member named 'remote_ip'
apxs:Error: Command failed with rc=65536

 

 Pour corriger l'erreur nous allons patcher le fichier mod_rpaf-2.0.c , car la version de 2.4 de apache apporte des modifications d'APIS qui ne sont prise en compte dans la version d'origine de mod_rpaf.

Pour patcher le fichier, placez vous dans le répertoire du mod 

cd /usr/local/src/mod_rpaf-0.6

Tapez la commande :

wget https://whm-cpanel-tutorial.fr/mod_rpaf-2.0.patch

Appliquez le patch que l'on vient de télécharger :

patch -p0 < mod_rpaf-2.0.patch

Vous devez avoir le log suivant : patching file mod_rpaf-2.0.c

Il vous reste plus cas compiler le mod_rpaf maintenant :

apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Voila maintenant le mod_rpaf est bien installé sur votre serveur.

Vous allez maintenant editer le fichier de configuration de votre apache pré post avec cette commande et ajouter les lignes suivantes :

nano /usr/local/apache/conf/includes/pre_virtualhost_global.conf

LoadModule rpaf_module modules/mod_rpaf-2.0.so

# mod_rpaf configuration

RPAFenable On
RPAFsethostname On
RPAFproxy_ips xx.xx.xx.xx < xx. est a remplacer pour l ip de votre serveur
RPAFheader X-Forwarded-For

On ferme le fichier et on redemare apache

service httpd restart

Vous pouvez maintenant forcer la mise a jour de AWSTATS pour voir le changement :

/scripts/runweblogs USERNAME-CPANEL

Et maintenant vous avez donc AWSTATS qui fonctionne comme avant !

[caption id="attachment_1612" align="alignnone" width="300"]Varnish problème AWSTAT mod_rpaf Varnish problème AWSTAT mod_rpaf[/caption]