¿Cómo obtener la IP del cliente de AWS, Google Cloud LB y Cloudflare en Nginx?

Configurar una aplicación web en la nube siempre es divertido y emocionante.

Recientemente, lancé una herramienta de herramientas kirukiru.es, que está alojada en AWS detrás de Cloudflare.

Estoy usando el balanceador de carga de aplicaciones de AWS y Nginx como servidor web. Después de hacer la vida, fui a ver access.log y noté que todas las solicitudes estaban marcadas como provenientes de una IP interna (balanceador de carga).

Esto no es bueno si desea analizar los registros de su servidor web para las ubicaciones de los visitantes. Me di cuenta de que me falta o necesito hacer algunos cambios de configuración para restaurar la IP del cliente.

¿Estás en la misma situación que yo?

Bueno, así es como puede obtener la IP del cliente en sus registros de acceso de Nginx.

Obtención de IP de visitante de AWS o Google Cloud LB

  • Inicie sesión en su servidor web Nginx
  • Vaya a la ruta donde está instalado (ubicación predeterminada /etc/nginx)
  • Realice una copia de seguridad del archivo nginx.conf
  • Agregue lo siguiente bajo el bloque HTTP
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
  • Reinicie Nginx y debería ver la IP del visitante en su archivo access.log

Si está detrás de Cloudflare, verá su IP en lugar de la IP del cliente, por lo que también debe hacer lo siguiente.

Obtener la IP del cliente de Cloudflare

Cloudflare es un gran proveedor de seguridad y CDN, y me encanta. Si está utilizando Cloudflare como yo y desea restaurar la IP del visitante en el registro del servidor web, así es como puede hacerlo.

Suponiendo que haya iniciado sesión en el servidor Nginx

Realice una copia de seguridad del archivo de configuración de su sitio (generalmente aquí: /etc/nginx/sites-disponible/yourdomain)

Agregue lo siguiente al principio del archivo

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 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
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 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;

Nota: Es posible que desee validar la lista de IP de su Página Oficial.

Reinicie Nginx y debería ver la IP del cliente ahora. Esto me ha ayudado, y espero que a ti también.

A continuación, descubra cómo puede implementar encabezados seguros con Cloudflare Workers.

¿Te gustó leer el artículo? ¿Qué tal compartir con el mundo?