Varnish en reverse-proxy: le problème des adresses locales

Si vous utilisez nginx ou Apache derrière Varnish, vous aurez remarqué que l’adresse IP du client récupérée est l’adresse locale (ou bien l’adresse du serveur hébergeant Varnish). Cela est le cas parce-que c’est Varnish qui créé la connexion TCP à nginx/apache, et non le client directement. Pour cela, nous allons tout simplement installer un module sur votre serveur Web, pour qui va utiliser une en-tête (X-Forwarded-For) pour connaitre l’IP du client.

Pour nginx

Il nous faut nginx compilé avec le module Real-IP (--with-http_realip_module), ce qui est le cas par défaut dans les paquets CentOS et Debian. Dans le fichier de configuration /etc/nginx/nginx.conf, dans la catégorie http {...}, ajoutez ça:

Redémarrez le serveur nginx, et c’est bon.

Pour Apache

Pour Apache, il faut installer le module RPAF2. Je vous invite à lire l’article très intéressant de wiki.tyk.nu.

facebooktwittergoogle_plusredditpinterestlinkedinmail