Как читать Client-IP с помощью x-forward-for вместо LB IP на HTTP-запросах в конфигурации Apache - PullRequest
0 голосов
/ 22 мая 2019

Мне нужен синтаксис RewriteCond внутри httpd conf реального IP вместо Proxy / Loabalancer IP.Мой вариант использования - это страница технического обслуживания, которая должна отображаться всем пользователям, за исключением некоторых пользователей из моего списка исключений, определенных IP-адресами, перечисленными в отдельном файле.

Я уже смотрю на Установите для REMOTE_ADDR значение X-Forwarded-For в apache , но я не получил нужную мне точку.

Я настроил Logformat на

LogFormat "%{X-Forwarded-For}i \"test\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

Мой вывод

www.xxx.yyy.zzz "test" 10.0.0.215 - - [22/May/2019:11:09:20 +0200]

но это также может быть

www.xxx.yyy.zzz, 10.0.0.12 "test" 10.0.0.215 - - [22/May/2019:11:09:19 +0200]

Так что мне нужно извлечь первый IP в моем случае использования.Что у меня есть в моем httpd.conf:

RewriteMap exceptions /appli/tecracer/apps/helios-fas/maintenance/exceptions.map

    # Allow Individual IP addresses past maintenance page
    RewriteCond ${exceptions:%{REMOTE_ADDR}} =OK
    RewriteRule ^ - [L]

Вместо REMOTE_ADDR мне нужен здесь реальный IP, первая запись информации заголовка X-Forward-For.Как мне извлечь это и можно ли верить, что первый IP-адрес - это каждый раз, когда IP-адрес клиента?

...