mod_realip2
Источник - http://tresnet.ru/archives/152
Вот хоумпага этого модуля: sysoev.ru/mod_realip/
Ну что сказать, разработчик постарался на славу и создал модуль, который нужно компилить еще при сборке апача. Вот выдержка из документации:
Модуль необходимо скопировать в каталог <apache_src>/src/modules/extra/ и активировать при сборке Apache
Причем документация закончилась на версии апача 1.3 , соответственно нам уже не подходит
при компиляции непосредственно самого исходника одного:
apxs -i -c -n mod_realip.so mod_realip.c
Вылезает порядка 30 ерроров и варнов, так что запасаемся терпением и тянем от меня уже скомпилированный mod_realip2.so и кидаем свой конфиг веб демона в /etc/httpd/conf.d/mod_realip2.conf вот такую инфу:
LoadModule realip2_module modules/mod_realip2.so RealIP On RealIPProxy xx.xx.xx.xx yy.yy.yy.yy 127.0.0.1 RealIPHeader X-Real-IP
Где xx.xx.xx.xx и yy.yy.yy.yy — IP Вашего сервера
а сам .so вот сюда: /usr/lib64/httpd/modules
PS К сожалению модуль найден пока только под x86_64.
/etc/httpd/conf.d/mod_remoteip.conf
LoadModule remoteip_module modules/mod_remoteip.so RemoteIPHeader X-Forwarded-For RemoteIPTrustedProxy 109.68.191.13 RemoteIPTrustedProxy 46.38.57.222
Apache 2.4
<IfModule remoteip_module> RemoteIPHeader X-Forwarded-For RemoteIPTrustedProxy 127.0.0.1 </IfModule>
Для Debian надо активировать модуль
# a2enmod mod_remoteip
Меняем формат логов в {apache2|httpd}.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Заменяем на
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
- %a - Client IP address of the request (see the mod_remoteip module).
- %h - Remote hostname. Will log the IP address if HostnameLookups is set to Off, which is the default. If it logs the hostname for only a few hosts, you probably have access control directives mentioning them by name. See the Require host documentation.
- %l - Remote logname (from identd, if supplied). This will return a dash unless mod_ident is present and IdentityCheck is set On.
- %t -
- %u - Remote user if the request was authenticated. May be bogus if return status (%s) is 401 (unauthorized).
В nginx proxy_set_header X-Real-IP $remote_addr;
Обсуждение