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'];

0 Comments