LINUX.ORG.RU
решено ФорумAdmin

nginx revers proxy и apache за ним не видит реальные ip

 , ,


0

1

Добрый день всем!
Помогите разобраться с этим, apache не хочет писать в логи реальные ip. Что дано:
Сервер FreeBSD 11.1 в jail'e крутится apache со следующими настройками:

<VirtualHost *:8080>
    ServerAdmin admin@example.com
    DocumentRoot "/usr/local/www/nextcloud"
    ServerName www.example.com
    ErrorLog "/var/log/apache/nc.example.com-error_log"
    CustomLog "/var/log/apache/nc.example.com-access_log" common

    <Directory />
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    <IfModule mod_dav.c>
        Dav off
    </IfModule>

    SetEnv HOME /usr/local/www/nextcloud
    SetEnv HTTP_HOME /usr/local/www/nextcloud
</VirtualHost>
IP адрес jail 10.0.0.2. на хосте стоит nginx как обратный прокси. mod_rpaf стоит на apache, вот его настройки:
<IfModule mod_rpaf.c>
  RPAFEnable       On
  RPAFproxy_ips     xx.xx.xx.xx - ip адрес хоста с nginx, это внешний ip.
  RPAFheader       X-Forwarded-For
#  RPAF_SetHostName  On
#  RPAF_SetHTTPS     On
#  RPAF_SetPort      On
</IfModule>
настройка самого nginx такая:
server {
    listen xx.xx.xx.xx:80;
    server_name www.example.com;

    client_max_body_size 1024M;

location / {
            proxy_set_header        Host $http_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-For $remote_addr;
#            proxy_set_header        X-Forwarded-Proto $scheme;

            proxy_pass          http://10.0.0.2:8080;
        }
}
В лог apacha все равно сыпятся его собственный ip, 10.0.0.2. Можете помочь решить?

Если apache 2.4, то rpaf не работает, вместо него надо использовать mod_remoteip.

alestro ()
Ответ на: комментарий от Deleted

Включил remoteip и отключил rpaf:

RemoteIPInternalProxy xx.xx.xx.xx
RemoteIPHeader X-Real-IP
Изменил формат логов:
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %b" common
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
И всё равно он показывает IP в логах только 10.0.0.2

UnderTaket ()
Ответ на: комментарий от Deleted

Огромнейшее спасибо. Начал показывать внешние ip адреса в логах.

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