Я использую mod-rpaf с Apache 2.4, и он работает правильно (показывает реальный IP-адрес клиента) в моем журнале доступа Apache ... но не в моем error_log. В моем журнале ошибок просто отображается IP-адрес клиента прокси-сервера (в данном случае мой балансировщик нагрузки)
Вот пример того, что я вижу в своем error_log, где 123.123.123.123 - это IP-адрес моего балансировщика нагрузки / прокси.
==> / usr / local / apache2 / logs / error_log <== [Вт, 05 июня, 20: 24: 31.027525 2012] [access_compat: error] [pid 9145: tid 140485731845888] [клиент 123.123.123.123: 20396] AH01797: клиент отклонен конфигурацией сервера: /wwwroot/private/secret.pdf
Тот же самый запрос дает следующее в моем access_log
где 456.456.456.456 - это реальный IP-адрес клиента (а не IP-адрес балансировщика нагрузки).
456.456.456.456 - - [05/Jun/2012:20:24:31 +0000] "GET /wwwroot/private/secret.pdf HTTP/1.1" 403 228 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) Gecko/20100101 Firefox/12.0"
Вот моя запись httpd.conf:
# RPAF
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 123.123.123.123
RPAFsethostname On
RPAFheader X-Forwarded-For
Что мне нужно сделать, чтобы в моем Apache error_log отображались реальные IP-адреса?
mod-rpaf требует лишь незначительного изменения источника, чтобы он работал с apache 2.4, который я нашел здесь http://vova-zms.blogspot.com/2012/07/install-modrpaf-with-apache-24.html
просто замените remote_
с участием client_
в mod_rpaf-2.0.c
также http://blog.77jp.net/mod_rpaf-install-apache-2-4
визуализируйте здесь простые изменения: https://gist.github.com/teriyakisan/2716030
mod-remoteip на самом деле не так надежен, как mod-rpaf (пока)
Также есть улучшенные копии mod-rpaf на github, например, здесь https://github.com/y-ken/mod_rpaf/ который имеет государственную поддержку https и удаляет часть устаревшей поддержки
Я подумал, что формат журнала ошибок выглядит странно, и я не думал, что есть способ изменить его в 2.2, поэтому я проверил документы для 2.4.
Кажется, сейчас ErrorLogFormat
директива, и ваш журнал ошибок находится в формате по умолчанию, который был обновлен и значительно улучшен с момента выхода версии 2.2.
Apache 2.4 теперь включает mod_remoteip который не поддерживает mod_rpaf. Я подозреваю, что mod_rpaf не обновлен для работы с Apache 2.4 и директивой ErrorLogFormat. Самая последняя версия на страница загрузки с 2008 года.
Вы должны использовать mod_remoteip вместо mod_rpaf с Apache 2.4.