mod_rpaf с apache error_log
Я использую mod-rpaf с Apache 2.4, и он работает правильно (показывает реальные IP-адреса клиента) в моем Apache access_log... но не в моем 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
Что мне нужно сделать, чтобы получить реальные IP-адреса, отображаемые в моем Apache error_log?
2 ответа
Я думал, что формат журнала ошибок выглядел странно, и я не думал, что есть какой-либо способ изменить его в 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.
Для работы 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 (пока)
В github также есть улучшенные копии mod-rpaf, например здесь https://github.com/y-ken/mod_rpaf/ который имеет поддержку состояния https и удаляет некоторые устаревшие поддержки.