:::: MENU ::::

¿Cómo ver la IP real del cliente en Nginx?

Si tu web usa Cloudflare por seguridad, notarás que en tu access.log aparece la IP de Cloudflare y no la de tus clientes. Si esto ocurre no puedes bloquear por IP si detectas un ataque o a un scrapper pesado que no se identifica.

Añade esto a tu bloque http de Nginx:

# IPv4 de cloudflare
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;

# IPv6 de cloudflare
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

# Usar la cabecera específica de Cloudflare para sustituir la IP
real_ip_header CF-Connecting-IP;

Comprueba y reinicia

sudo nginx -t
sudo systemctl restart nginx

Luego filtra por IP echando a los pesados:

server {
    server_name nombredemiweb.com;

    # Bloquear una IP específica
    deny 1.2.3.4;

    . . .
}




Hey! Qué opinas sobre el artículo?