Estate atento porque en esta noticia vas a encontrar el resultado que buscas.
Solución:
Solución 1:
Restaure %a a ese formato si va a usar mod_remoteip.
En bugzilla, mod_remoteip completa %a mientras elimina de %X-Forwarded-Fori. Entonces, en un caso simple con un proxy confiable, %a mantendrá el valor usado para ver en X-Forwarded-For debido a mod_remoteip
Solución 2:
Capa de proxy (Nginx)
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
Capa de fondo (Apache)
# Log format config
LogFormat "%X-Forwarded-Fori %l %u %t "%r" %>s %b "%Refereri" "%User-Agenti"" common
SetEnvIf X-Forwarded-For "^.*..*..*..*" forwarded
CustomLog "logs/access_log" common env=forwarded
# Header config
RemoteIPHeader X-Real-IP
RemoteIPHeader X-Client-IP
RemoteIPInternalProxy 192.168.10.10 192.168.10.11
Descripción:
proxy_set_header – la directiva establece encabezados que nginx envía al backend; entonces, en este ejemplo, enviamos dos variables (a los encabezados): X-Forwarded-For
y X-Real-IP
X-reenviado-para – en el lado del proxy, se debe configurar que este encabezado se pase a los backends y sea accesible desde su capa
X-Real-IP – no afecta las variables requeridas en la página web, pero lo dejamos habilitado para que el servidor Apache coloque la dirección del cliente en los registros (también debe configurar el formato del registro):
### X-Real-IP enabled
172.217.20.206 - - [03/Jun/2017:11:12:11 +0200] "GET /tls-check.php?9832 HTTP/1.0" 200 1409
### X-Real-IP disabled
172.16.21.11 - - [03/Jun/2017:15:12:49 +0200] "GET /tls-check.php?13266 HTTP/1.0" 200 1448
Rizo
:~$ curl -H Cache-Control: no-cache -ks https://example.com/tls-check.php?$RANDOM | grep "HTTP_X_FORWARDED_FOR|HTTP_X_REAL_IP|SERVER_ADDR|REMOTE_ADDR"
[HTTP_X_FORWARDED_FOR] => 172.217.20.206
[HTTP_X_REAL_IP] => 172.217.20.206
[SERVER_ADDR] => 192.168.10.100
[REMOTE_ADDR] => 192.168.10.10
tls_check.php
';
print_r($_SERVER);
echo '
';
exit;
?>
Agradecemos que quieras añadir valor a nuestra información colaborando tu experiencia en las explicaciones.