Skip to main content

Заміна 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 (5 оцінок, середнє: 3,20 з 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 не буде опублікований.