So teilen Sie die beiden vom Google Cloud Load Balancer angehängten IP-Adressen auf

So teilen Sie die beiden vom Google Cloud Load Balancer angehängten IP-Adressen auf

Ich verwende Apache als Webserver für Drupal. Außerdem verwende ich Google Cloud CDN und meine Instanz befindet sich hinter einem Load Balancer (Voraussetzung für Google Cloud CDN). Das Problem besteht darin, dass der Load Balancer 2 IP-Adressen an den Header x-forwrded-for anhängt, wie in diesem Supportdokument erwähnt -https://cloud.google.com/load-balancing/docs/https#target-proxies

Ich möchte diese IPs im Apache-Protokoll aufteilen und nur die Client-IP der beiden angehängten IP-Adressen behalten. Bitte helfen Sie

Antwort1

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

Dadurch werden Protokolle im folgenden Format erstellt: 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"

Die Direktive SetEnvIf verwendet das Zeichen ^, um den Anfang des Headers X-Forwarded-For abzugleichen, und den regulären Ausdruck ([^,]+), um die erste IP-Adresse abzugleichen und zu erfassen. Die erfasste IP-Adresse wird dann in der Umgebungsvariable x-forwarded-for-first gespeichert.

verwandte Informationen