Nginx apache mod_rpaf ispmanager
Применимость: «Linux, Centos, ISPmanager»
Слова для поиска: реальный IP адрес, real ip
Задача:
HTTP запрос на apache происходит с IP адреса, на котором расположен nginx. mod_rpaf служит для восстановления настоящего (реального) IP для приложений которые выполняются на apache.
Решение:
Устанавливаем репозиторий ALTLinux для Centos:
rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm
Если у вас версия системы 32 бита, то ваш репозиторий другой:
rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm
Определить тип вашей системы можно командой:
uname -i x86_64
x86_64 - означает, что у вас система 64 бита.
Полезно отключить этот репозиторий, чтобы система автоматически ничего лишнего не ставила из него:
vi /etc/yum.repos.d/centalt.repo enabled=0
Установка пакета:
yum -y --enablerepo=CentALT install mod_rpaf
В файле конфигурации mod_rpaf - /etc/httpd/conf.d/00_rpaf.conf нужно добавить следующие строки:
LoadModule rpaf_module modules/mod_rpaf-.0.so RPAFenable On RPAFsethostname Off RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yy RPAFheader X-Real-IP
Рестарт Apache
service httpd restart
Проверяем работу модуля. В каталоге любого вашего домена создайте файл test-ip.php с таким содержимым:
<?PHP echo $_SERVER['REMOTE_ADDR']; ?>
Откройте ссылку
http://<ваш домен>/test-ip.php
Если отображается IP, отличающийся от IP вашего сервера, модуль работает правильно.
Примечания:
- Наличие ISPmanager не обязательно.
- Эта конфигурация будет работать на любом другом дистрибутиве Linux, только нужно использовать соотвествующие репозитории.