Cómo dividir las 2 direcciones IP agregadas por el balanceador de carga en la nube de Google

Cómo dividir las 2 direcciones IP agregadas por el balanceador de carga en la nube de Google

Estoy usando Apache como servidor web para Drupal. Además, estoy usando Google Cloud CDN y mi instancia está detrás de un equilibrador de carga (requisito para Google Cloud CDN). El problema es que el balanceador de carga agrega 2 direcciones IP al encabezado x-forwrded-for como se menciona en este documento de soporte:https://cloud.google.com/load-balancing/docs/https#target-proxies

Quiero dividir esas IP en el registro de Apache y solo conservar la IP del cliente de las 2 direcciones IP que agrega. Por favor ayuda

Respuesta1

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{x-forwarded-for-first}e\"" combined SetEnvIf X-Forwarded-For "^([^,]+)" x-forwarded-for-first=$1

Esto producirá registros en el siguiente formato: 127.0.0.1 - - [23/Dec/2022:12:34:56 +0100] "GET /index.html HTTP/1.1" 200 123 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36" "203.0.113.45"

La directiva SetEnvIf utiliza el carácter ^ para hacer coincidir el inicio del encabezado X-Forwarded-For y la expresión regular ([^,]+) para hacer coincidir y capturar la primera dirección IP. Luego, la dirección IP capturada se almacena en la variable de entorno x-forward-for-first.

información relacionada