Всем известно для того чтобы разгрузить сервер от тяжелых запросов апача, сделует установить российский пакет nginx.
Я столкнулся с проблемой вывода реальных IP адресов apache 2.4.7 + nginx, ни один из модулей, которые успешно справлялись с этой проблемой, не работали на apache 2.4.7, либо отказывались компилироваться… Решение было найдено, теперь для отображения реальных IP шников нам потребуется 2 модуля, а именно mod_rpaf 2.0.c и mod_realip2.
Я выкладываю уже исправленный вариант mod_rpaf 2.0.c и mod_realip2 для apache 2.4.7, его необходимо скомпилировать и подключить в настройках httpd.conf
Скачать mod_rpaf + mod_realip2 for apache 2.4.7
После скачивания выполняем компиляцию:
apxs -cia mod_rpaf-2.0.c
Дальше самое интересное, для корректной работы нам потребуется 2 модуля. Этот модуль отвечает за правку IP в логах и сервер-статусе.
LoadModule rpaf_module /usr/lib/apache/mod_rpaf-2.0.so RPAFenable On RPAFproxy_ips #тут через пробел IPшники сервера RPAFheader X-Forwarded-For
#после вам надо установить модуль RemoteIP, возможно что он уже установлен, проверить можно командой
httpd -l | grep mod_remoteip.c
если нету, то компилируем модуль, после устанавливаем
apxs -cia mod_realip2.c
После включаем отображение реальных IP на сайте в переменной REMOTE_ADDR
LoadModule remoteip_module /usr/lib/apache/mod_remoteip.so RemoteIPHeader X-Real-IP
А вот так, должен выглядеть конфиг nginx.conf чтобы IPшники корректно передавались:
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Принцип работы прост, один модуль заменяет IP в логах и сервер статусе, второй модуль заменяет Ip в переменной $_SERVER['REMOTE_ADDR']
Жмём на кнопку мне нравится и радуемся новому программному обеспечению.
© bartik.
Подскажите, а на какой ОС вы пробовали искать готовые пакеты ?
Сам почти пол дня капался с apache 2.4.7 на ubuntu 14.04. Нашел интересную (или странную) штуку:
1. модуль mod_remoteip (идет в комплекте с апачем 2.4) меняет remote_addr на бэкэнде как надо:
# a2enmod remoteip
в файл /etc/apache2/mods-enabled/remoteip.conf добавляю:
RemoteIPHeader X-Real-IP
RemoteIPInternalProxy 127.0.0.1
Минус этого модуля - в логах пишет 127.0.0.1
2. Модуль rpaf (2.0 который), успешно меняет ip в логах апача, но сам remote_addr остается прежним (со стороны тех же php скриптов)
Зато в связке все работает как надо.
p.s.: раньше на apache 2.2 хватало одного mod_rpaf
Комментарий от greenlogles — 17 июня 2014 @ 18:34
Пробывал искать на CENTOS 6.5
Комментарий от admin — 29 июня 2014 @ 11:26