Сьогодні оновив на своєму сервері 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.
Як ви оціните статтю?
А не могли б ви докладніше описати процедуру заміни rpaf на remoteip? Які конфіги поправити і так далі, а то просто вже багато перепробував і нічого не виходить. Заздалегідь дякую!
Розташування конфіга залежить від того, як у вас налаштовані сайти. Але тут тільки два шляхи: або віртуальні сервери прописані у файлі /etc/apache2/apache2.conf, або в якомусь файлі в каталозі /etc/sites-available/example.com.conf, де example.com відповідає домену сайту.
Конфігурацію remoteip, зазначену в пості, потрібно прописувати в секцію
Установка remoteip не потрібно, оскільки він йде в комплекті. Потрібно лише активувати.
На жаль веб-сервер налаштовував інша людина, тому трохи заплутався. Варто зв'язка nginx + apache 2.4.10. Судячи по модулях, rpaf був встановлений і налаштований, так як проблеми з'явилися саме після апдейта до 8 Дебіан. remoteip ні встановлено і довелося ставити його руками.
Дійсно, конфіги лежать окремо в / sites-available /
Конфиг апача: http://pastebin.com/c47s8Zuw
Конфиг nginx: http://pastebin.com/ebWNS8ME (ось ніби в цьому конфіги і прописані настройки для rpaf).
Підкажіть, як коректно вимкнути цей модуль (rpaf) і, якщо можливо, підкажіть по конфігам, так як думаю що є якийсь конфлікт між модулями.
Mod rpaf вимикається командою a2dismod rpaf, потім потрібно перезапустити apache: service apache2 restart.
Потім можна і видалити його: aptitude remove libapache2-mod-rpaf.
У ваших конфігах конфліктів немає, як і налаштувань rpaf. Його налаштування розташовуються в файлі /etc/apache2/mods-available/rpaf.conf. Досить вимкнути і конфлікт повинен пропасти.
Спасибі, буду пробувати.
Раніше у нас використовувалася зв'язка IIS + Apache проксі балансувальник, тепер вирішили відмовитися від IIS і зробити на одному сервісі Apache веб-сервер + проксі балансувальник, все вийшло, але реальні IP-адреси клієнтів не передаються в web-додаток і відображаються як локальну адресу Apache . Прошу допомогти розібратися з проблемкою, ось конфиг Апачі:
https://drive.google.com/open?id=0ByrqLF_MjfmvVVd1QjM2TjNhd00
пробував підставити і RemoteIPHeader X-Real-IP і RemoteIPHeader X-Forwarded-For
А що використовується в якості проксі-балансувальника? Я так розумію, apache стоїть перед ним, як фронтенд, вірно?
Як варіант, спробувати прописати це:
як балансувальника використовується цей же сервіс Apache (веб-сервер + проксі балансувальник), і ось з цього Apache вже йдуть запити на додаток всередині мережі. Параметр X-Client-IP теж пробував. Додаток базується на Oracle IAS, там до речі вбудований всередині нього ще один Apache. Але він до IP адресами точно не має відношення.
На жаль, навряд-чи я зможу допомогти чимось у вашій конкретній ситуації. З таким стикатися не доводилося. :(