Установка mod_rpaf на CentOS 7


mod_rpaf — модуль для апача благодаря которому nginx «пробрасывает» реальный IP адрес клиента до apache. Если вы используйте связку nginx+apache вы обратите внимание что изнатанчально в логах nginx IP адрес реальный, в то время как в логах apache — 127.0.0.1 ну или локальный IP адрес который был назначен для apache.

Исправим это! Приступим:

1. Установим необходимые пакеты

[[email protected] ~]# yum install httpd-devel gcc

2. Скачиваем последний mod_rpaf

Последнюю версию мода можно найти тут:

[[email protected] ~]# cd /tmp
[[email protected] ~]# wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

Если линк недоступен то добавьте следующее в файл /etc/hosts

178.236.176.177 stderr.net

3. Сборка и установка модуля

[[email protected] tmp]# tar xvzf mod_rpaf-0.6.tar.gz
[[email protected] tmp]# cd mod_rpaf-0.6
[[email protected] mod_rpaf-0.6]# apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
[[email protected] mod_rpaf-0.6]# cd

4. Cоздаём конфиг для mod_rpaf

[[email protected] mod_rpaf-0.6]# vim /etc/httpd/conf.d/mod_rpaf.conf

Вставляем следующее:

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(IP адрес который слушает апач)
RPAFheader X-Forwarded-For

Сразу хочу обратить Ваше внимание на то что, в параметре RPAFproxy_ips необходимо указать IP адрес на котором у вас «слушает» nginx. Обычно 127.0.0.1 подходит в большинстве случаев.

5. Правим конфиг vhost-a nginx

В раздел «location /» добавляем следующие строки:

proxy_pass http://ip_адрес_апача:порт_апача/;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;

6. Перезапускаем и Проверяем

[[email protected] ~]# /etc/init.d/httpd restart
[[email protected] ~]# /etc/init.d/nginx restart

Пробуем зайти на наш сайт и смотрим лог:
Было:

[[email protected] ~]# tail /var/log/nginx/access.log
127.0.0.1 - - [01/May/2014:11:42:44 +0300]

Стало:

[[email protected] ~]# tail /var/log/nginx/access.log
12.34.56.78 - - [01/May/2014:11:44:44 +0300]

Если не работает, проверяем еще раз все изменения, смотрим наличие ошибок синтаксиса и конечно же, смотрим error_log.


Наверх