LINUX.ORG.RU
ФорумAdmin

nginx -> apache логи

 ,


0

1

Nginx за ним два сервера с Apache с разными поддоменами.
У всех трех серверов серые ip, nginx транслируется в реальный адрес шлюзом.

Конфиг nginx:

server {
    listen 80;
    server_name dom1.dom.ru;

    location / {
        proxy_pass http://10.1.1.21:80/;

        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Port  $server_port;
    }
}


Конфиг Apache1, включен модуль remoteip:
<VirtualHost 0.0.0.0:80>
    ServerName dom1.dom.ru
    ServerAlias dom1.dom.ru

    RemoteIPHeader X-Real-IP
    RemoteIPInternalProxy 10.1.1.1

Не могу добиться вывод в логах apache ip-адреса клиента, сейчас для всех запросов ip nginx.

Дежи нас вкурсе.

anonymous ()

Включи в Apache логирование заголовка X-Real-IP

LogFormat "{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common_with_ip

CustomLog "logs/access_ip_log" common_with_ip
pru-mike ★★ ()

В apache в директивах LogFormat по молчанию используется вывод адреса клиента через макрос %h. Для работы с mod_remoteip его нужно заменить на макрос %a:
http://httpd.apache.org/docs/2.4/mod/mod_log_config.html#formats

%a	Client IP address of the request (see the mod_remoteip module).
%h	Remote hostname. Will log the IP address if HostnameLookups is set to Off, which is the default. ...
Иначе даже при правильной настройке RemoteIPHeader, RemoteIPInternalProxy в логах будет виден IP прокси.

spirit ★★★★★ ()

Всем большое спасибо за помощь.
Лог Apache изменялся для блокировок клиентов через fail2ban, но весь трафик идет с ip-адреса proxy и блокировки не происходит.

WinLin2 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.