httpd访问日志,iplogin是颠倒代理如何find实际的代理

检查访问日志,发现用户login的IP来自反向代理服务器。

设置是这样的

www.abc.com -> reversed proxy to my server 123.123.123.123 

有没有反正configurationHTTP访问日志跟踪反向代理服务器后面的实际传入IP?

您正在寻找X-Forwarded-For标题。 任何值得使用的代理将把这个头添加到它正在转发的HTTP请求中。

如果您的整个站点位于此代理的后面,那么您需要为其find相关的LogFormat ,其LogFormat通常如下所示:

 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 

并添加到它的头(或换出%h这是唯一的将是你的反向代理)像这样:

 LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 

如果您不想重新定义combined日志格式,请创build您自己的:

 LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_proxy CustomLog /path/to/logfile.log combined_proxy 

%{<header>}i是一种将任何其他请求头放到日志文件中的方法。

注意:该标题不一定总是一个IP地址。 如果请求来自多个代理,那么您将得到一个逗号分隔的表单列表: client, proxy1, proxy2 ; 你可能需要更新你的脚本或日志铲刀来适应这个。

就在这里。

对于当前版本的Apache: mod_rpaf
对于2.3分支之后的任何东西: mod_remoteip

这两种方法都会将正在运行的Apache进程中的REMOTE_ADDRvariablesreplaceX-Forwarded-For来自任何受信任的反向代理的传入X-Forwarded-For头中的最后一个IP。 这个IP地址也将被logging在您的标准Apache日志中,而不必根本改变它们。

这个variables也可以通过$_SERVER['REMOTE_ADDR']来获得你的PHP代码,这是你通常希望的远程IP地址。

这些模块所需的唯一configuration是为它们提供一个受信任的反向代理列表。

在安全说明中,这些标题可以被添加,删除,伪造和可能的损坏。 不能保证你从这个头获得的任何IP地址都是访问者的真实 IP地址。 列表中的最后一个(这是您的可信反向代理添加的)是唯一可以确定的。