How to install rpaf module

Установка модуля rpaf на Apache

После установки на VPS nginx в качестве кэширующего прокси для апача, последний перестал правильно определять IP адреса клиентов, получая вместо них, естественно, внешний адрес nginx. Не то, чтобы очень критично, но, согласитесь, неприятно. Решение было найдено быстро — необходимо установить rpaf модуль к апачу. Погуглив немного, нашел статью, вольный перевод которой и предлагаю ниже.

RPAF модуль не особо популярен, но реально необходим, если ваш апач находится за прокси, и вам важно знать реальные ip-адреса ваших клиентов. Суть его работы такова. Если во входящих заголовках (которые могут быть модифицированы nginx — определяйте их правильно) присутствует X-Forwarded-For header , то этот rpaf-модуль заменяет удаленный адрес клиента в соответствии со значением, полученным из X-Forwarded-For.

Как установить rpaf модуль к apache на CentOS 6.6?

Начальная конфигурация:

  • CentOS release 6.6 (Final)
  • VPS + ISP-manager
  • nginx +  Apache/2.2.15

 Шаг 1.

Необходимо установить httpd-devel (и gcc со всеми зависимостями)

yum install httpd-devel

yum install gcc

Примечание. httpd-devel содержит в себе apxs — систему управления модулями Apache (чтобы не получить: bash: apxs: команда не найдена), ну и собственно компиллятор, если он у вас в системе еще не установлен.

Шаг 2.

Загрузить актуальную версию модуля mod_rpaf

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

У меня не сработало, ресурс stderr.net был не доступен, поэтому можно использовать зеркало:

wget http://mirror.trouble-free.net/sources/mod_rpaf-0.6.tar.gz

Шаг 3.

Распаковать и скомпилировать модуль:

tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

По окончании вы увидите что вроде того, что на скриншоте ниже:

How to install rpaf module

Шаг 4.

Создайте mod_rpaf.conf файл:

nano /etc/httpd/conf.d/mod_rpaf.conf

Шаг 5.

Скопируйте строки ниже в созданный файл конфигурации:

LoadModule rpaf_module modules/mod_rpaf-2.0.so

# mod_rpaf Configuration

RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 10.0.0.1 X.X.X.X
RPAFheader X-Forwarded-For

где X.X.X.X — внешний ip сервера (или, вернее, ip nginx), соответственно, это значение укажет модулю rpaf какой хост отдает ему заголовки X-Forwarded-For

Шаг 6.

Не забудьте сохранить ваш файл конфигурации при выходе из редактора.

Шаг 7.

Рестартуйте Апач:

 /etc/init.d/httpd restart

И наслаждайтесь!

Оставить ответ

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