Как разделить 2 IP-адреса, добавленные балансировщиком нагрузки Google Cloud

Как разделить 2 IP-адреса, добавленные балансировщиком нагрузки Google Cloud

Я использую apache в качестве веб-сервера для drupal. Кроме того, я использую google cloud CDN, и мой экземпляр находится за балансировщиком нагрузки (требование для google cloud CDN). Проблема в том, что балансировщик нагрузки добавляет 2 IP-адреса к заголовку x-forwrded-for, как указано в этом документе поддержки -https://cloud.google.com/load-balancing/docs/https#target-proxies

Я хочу разделить эти IP в журнале Apache и сохранить только клиентский IP из 2 IP-адресов, которые он добавляет. Пожалуйста, помогите

решение1

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

Это позволит создать журналы в следующем формате: 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"

Директива SetEnvIf использует символ ^ для сопоставления начала заголовка X-Forwarded-For и регулярное выражение ([^,]+) для сопоставления и захвата первого IP-адреса. Захваченный IP-адрес затем сохраняется в переменной среды x-forwarded-for-first.

Связанный контент