Résoudre REMOTE_ADDR derrière un reverse proxy Varnish

Lorsqu’un site est derrière un reverse proxy (comme Varnish Cache), le php ne reçoit dans la variable $_SERVER[‘REMOTE_ADDR’] que l’adresse IP du reverse proxy. Afin d’accéder à l’IP du client, il faut ajouter une directive au fichier VCL de Varnish et modifier le code php permettant de récupérer l’ip.

 

Ajout dans le fichier .vcl de Varnish

sub vcl_recv {
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}

Dans le php, on récupère l’IP du client en utilisant

$dotted_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];

 Résoudre REMOTE_ADDR derrière un reverse proxy Varnish

Tagged in:,

0 Comments

Leave a Reply

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.