Категории: Советы вебмастеру

Установка модуля 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

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

Шаг 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

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

pike777

Share
Опубликовано
pike777

Недавние статьи

HIKVISION H99I. Заработало! Но сначала… пляски с бубном

Установка устройства производится приложением на смартфоне. Само приложение скачивается по ссылке из QR кода в…

3 года ago

Bitrix: JSON error: Syntax error

При настройке сайта, пункт "Рабочий стол - Маркетинг - Поисковая оптимизация - Поисковые системы -…

3 года ago

Восстановление Fail2Ban на VestaCP CentOS 7

После установки Vesta CP на свежеустановленную CentOS обратил внимание, что в панели управления в разделе…

4 года ago

Ошибка службы виртуальных дисков объект не найден (решено)

Проблема возникла с флешками после какого-то из обновлений Windows 10. Некоторые USB флешки (не все)…

5 лет ago

Зависает проводник в Windows: Программа explorer.exe прекратила взаимодействие с Windows и была закрыта.

На одном из компьютеров с Windows 10 стал зависать проводник (explorer.exe) при стандартном вызове из…

6 лет ago

Как посчитать количество файлов в папке Linux

Первое решение (что называется "в лоб") для подсчета количества файлов в linux директории: $ ls…

6 лет ago