Замена mod_rpaf на mod_remoteip в Apache 2.4

Сегодня обновил на своём сервере Debian до Jessie и обнаружил проблему: модуль mod_rpaf не отображал правильный ip-адрес клиента, вместо этого отображался ip 127.0.0.1, при проксировании запросов от nginx к apache.

Решается проблема очень просто: деактивируем/удаляем mod_rpaf и активируем mod_remoteip командой:

# a2enmod mod_remoteip

Перезагружаем apache. Теперь открываем конфиг-файл с виртуальными хостами и для каждого сайта прописываем следующее:

<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1
</IfModule>

Снова перезапускаем apache.

Как вы оцените статью?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (4 оценок, среднее: 3,00 из 5)
Загрузка...

9 Комментарии “Замена mod_rpaf на mod_remoteip в Apache 2.4

  1. А не могли бы вы подробнее описать процедуру замены rpaf на remoteip? Какие конфиги поправить и так далее, а то просто уже многое перепробовал и ничего не получается. Заранее спасибо!

    1. Расположение конфига зависит от того, как у вас настроены сайты. Но тут только два пути: либо виртуальные серверы прописаны в файле /etc/apache2/apache2.conf, либо в каком-то файле в каталоге /etc/sites-available/example.com.conf, где example.com соответствует домену сайта.

      Конфигурацию remoteip, указанную в посте, нужно прописывать в секцию

      <VirtualHost *:80>
      
      </VirtualHost>

      Установка remoteip не требуется, поскольку он идёт в комплекте. Нужно лишь активировать.

  2. К сожалению веб-сервер настраивал другой человек, поэтому немного запутался. Стоит связка nginx + apache 2.4.10. Судя по модулям, rpaf был установлен и настроен, так как проблемы появились именно после апдейта до 8 дебиана. remoteip не был установлен и пришлось ставить его руками.

    Действительно, конфиги лежат отдельно в /sites-available/

    Конфиг апача: http://pastebin.com/c47s8Zuw
    Конфиг nginx: http://pastebin.com/ebWNS8ME (вот вроде в этом конфиге и прописаны настройки для rpaf).

    Подскажите, как корректно выключить этот модуль (rpaf) и, если возможно, подскажите по конфигам, так как думаю что есть какой-то конфликт между модулями.

    1. Mod rpaf выключается командой a2dismod rpaf, затем нужно перезапустить apache: service apache2 restart.

      Потом можно и удалить его: aptitude remove libapache2-mod-rpaf.

      В ваших конфигах конфликтов нет, как и настроек rpaf. Его настройки располагаются в файле /etc/apache2/mods-available/rpaf.conf. Достаточно выключить и конфликт должен пропасть.

  3. Ранее у нас использовалась связка IIS+Apache прокси балансировщик, теперь решили отказаться от IIS и сделать на одном сервисе Apache веб-сервер+прокси балансировщик, все получилось, но реальные IP-адреса клиентов не передаются в web-приложение и отображаются как локальный адрес Apache. Прошу помочь разобраться с проблемкой, вот конфиг апаче:
    https://drive.google.com/open?id=0ByrqLF_MjfmvVVd1QjM2TjNhd00
    пробовал подставить и RemoteIPHeader X-Real-IP и RemoteIPHeader X-Forwarded-For

    1. А что используется в качестве прокси-балансировщика? Я так понимаю, apache стоит перед ним, как фронтенд, верно?

      Как вариант, попробовать прописать это:

      RemoteIPHeader X-Client-IP
      1. в качестве балансировщика используется этот же сервис Apache(веб-сервер+прокси балансировщик), и вот с этого Apache уже идут запросы на приложение внутри сети. Параметр X-Client-IP тоже пробовал. Приложение базируется на Oracle IAS, там кстати встроен внутри него еще один Apache. Но он к IP адресам точно не имеет отношения.

        1. Увы, вряд-ли я смогу помочь чем-то в вашей конкретной ситуации. С таким сталкиваться не приходилось. :(

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *