带有apache error_log的mod_rpaf

我在Apache 2.4中使用mod-rpaf,并且在我的Apache access_log中工作正常(显示真正的客户端IP),但是不在我的error_log中。 我的错误日志只是显示代理服务器的客户端IP地址(在这种情况下是我的负载均衡器)

以下是我在我的error_log中看到的示例,其中123.123.123.123是我的负载平衡器/代理的IP。

==> / usr / local / apache2 / logs / error_log <== [Tue Jun 05 20:24:31.027525 2012] [access_compat:error] [pid 9145:tid 140485731845888] [client 123.123.123.123:20396 ] AH01797:client被服务器configuration拒绝:/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.4的文档 。

现在看来,现在有一个ErrorLogFormat指令,你的错误日志是默认的格式,从2.2开始已经更新和显着改进。

Apache 2.4现在包含mod_remoteip ,它弃用了mod_rpaf。 我怀疑mod_rpaf尚未更新与Apache 2.4和ErrorLogFormat指令。 下载页面上的最新版本是从2008年开始的。

你应该使用mod_remoteip而不是Apache 2.4的mod_rpaf。

mod-rpaf只需要对源代码进行一些小修改就可以使用我在这里find的apache 2.4。http://vova-zms.blogspot.com/2012/07/install-modrpaf-with-apache-24.html

简单地用mod_rpaf-2.0.c中的mod_rpaf-2.0.creplacemod_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状态支持,并删除了一些旧的支持