Estoy investigando la limitación de velocidad usando HttpLimitReqModule de nginx . Sin embargo, todas las solicitudes provienen de la misma IP (un equilibrador de carga), con la dirección IP real en los encabezados.
¿Hay alguna manera de tener nginx rate-limit basado en la ip en el X-Forwarded-Forencabezado en lugar de la ip de la fuente?
fuente

$binary_remote_addrvariable se configura correctamente.La
limit_req_zonedirectiva define la variable que se utilizará como clave para la agrupación de solicitudes.Por lo general,
$binary_remote_addrse usa en lugar de$remote_addrporque es más pequeño y ahorra espacio.Quizás, alternativamente, desee utilizar el RealipModule .
Esto reescribirá las variables de dirección remota a la dirección proporcionada en un encabezado personalizado y también facilitará el registro y el uso de otras variables.
fuente
$binary_remote_addry$remote_addrse configuran al valor de su encabezado configurado, por lo generalX-Forwarded-For, sus variables estándar ahora son la "dirección IP del cliente real". Ejecutenginx -Vpara ver si NGINX fue construido con--with-http_realip. Entonces config es tan simple como:,set_real_ip_from 10.0.0.0/8;real_ip_header X-Forwarded-For;donde el rango CIDR es el de su equilibrador de carga ascendente que está configurando elX-Forwarder-Forencabezado.