Como dividir os 2 endereços IP anexados pelo balanceador de carga do Google Cloud

Como dividir os 2 endereços IP anexados pelo balanceador de carga do Google Cloud

Estou usando o Apache como meu servidor web para Drupal. Além disso, estou usando o Google Cloud CDN e minha instância está atrás de um balanceador de carga (requisito para o Google Cloud CDN). O problema é que o balanceador de carga anexa 2 endereços IP ao cabeçalho x-forwrded-for conforme mencionado neste documento de suporte -https://cloud.google.com/load-balancing/docs/https#target-proxies

Quero dividir esses IPs no log do Apache e manter apenas o IP do cliente dos 2 endereços IP que ele anexa. Por favor ajude

Responder1

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

Isso produzirá logs no seguinte 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"

A diretiva SetEnvIf usa o caractere ^ para corresponder ao início do cabeçalho X-Forwarded-For e a expressão regular ([^,]+) para corresponder e capturar o primeiro endereço IP. O endereço IP capturado é então armazenado na variável de ambiente x-forwarded-for-first.

informação relacionada