Установка mod_rpaf. Получаем реальный IP адрес при использовании NGINX + Apache

Чтобы Apache получал от NGINX IP адрес посетителя вместо локального, необходимо установить модуль RPAF (mod_rpaf) для Apache.

В поисках правильных инструкций мною было найдено небольшое кол-во сайтов, но идеального результата, следуя по которому получилось бы установить mod_rpaf я не нашел. Где-то ссылки битые, где-то версия старая, а где-то не под мою ось…
Но мне удалось основываясь на несколько статей установить стабильную версию модуля на свой VDS с Debian/Ubuntu.

Понадобится apxs2 (APache eXtenSion tool). Ставится он в комплекте с другими средствами разработки под Apache:

apt-get update #обновим данные из репозитариев
apt-get install apache2-prefork-dev

Установка данного набора никак не влияет на текущую работу сервера Apache! Можно устанавливать смело.
Рестартим Apache

/etc/init.d/apache2 restart

Скачиваем и устанавливаем mod_rpaf

cd /usr/local/src
wget https://github.com/gnif/mod_rpaf/archive/stable.zip
unzip stable.zip
cd mod_rpaf*

Командой ls вы сможете увидеть в папке список файлов. Среди файлов должен быть файл mod_rpaf.c (либо с другим именем, содержащим версию) — вставляем его в следующую команду

apxs2 -i -c -n mod_rpaf.so mod_rpaf.c

Здесь mod_rpaf.so — имя файла-модуля для Apache2.
После выполнения команды будет создан файл с таким именем, также автоматически этот файл будет установлен в папку с остальными модулями Apache.
В моем случае эта папка /usr/lib/apache2/modules — необходимо обратить внимание на этот путь, так как он понадобится чуть позже.

Затем необходимо создать в папке /etc/apache2/mods-available/ два файла.
Первый файл — с настройками модуля mod_rpaf
Второй файл — с указанием пути к модулю для его загрузки апачем.

cd /etc/apache2/mods-available/
nano rpaf.conf

Вписываем в этот файл настройки, основываясь на README из репозитория https://github.com/gnif/mod_rpaf

У себя я вписал следующее:

RPAF_Enable On
RPAF_Header X-Forwarded-For
RPAF_SetHostName On

Закрываем файл с сохранением.

Создаем файл для загрузки модуля:

nano rpaf.load

Вписываем в него (обратите внимание на путь до файла *.so — выше я писал, что это за путь)

LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf.so

Закрываем файл с сохранением.

Дальше включаем модуль и перезапускаем apache:

a2enmod rpaf
/etc/init.d/apache2 restart

Чтобы NGINX передавал IP адрес в Apache в секции server {…} настроек виртуальных хостов нужно прописать строчку

В конфиге nginx для нужных доменов внутри server {…} надо вписать:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

После перезапускаем nginx

service nginx restart

После всего этого у меня заработало и в различных логах и в комментариях начал фигурировать реальный ip адрес всместо 127.0.0.1

Проделал этот порядок установки на двух ВДС с Дебиан и Убунту.
Успехов!

Статья составлена на основе:


Если Вам интересны темы, про которые я пишу в своем блоге, то Вы можете Подписаться на обновления. Подписываться на новости и обновления можно по емайл или через популярные сервисы yandex и google!

Эта запись была опубликована в рубрике Я и Ubuntu и отмечена метками , . Добавить в закладки ссылку.

2 в ответ на Установка mod_rpaf. Получаем реальный IP адрес при использовании NGINX + Apache:

  1. Федор пишет:

    Ваш город .NULL

    Расширенные данные полученные из ipgeobase:

    Все данные:
    Array
    (
    )

    Достаем город

    Достаем IP
    213.170.67.42
    IP адрес валиден

    IP видит , а город не определяет . что может быть ? у меня именно nginx как прокси и апаче . на дебиан.

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