目前我在我的Apache 2.4 httpd文件中有一些虚拟主机。 我希望能够获取有关访问谁的更多信息,包括访问日志中的IP地址和用户代理。
在httpd的conf文件中,我有这样的:
` <IfModule log_config_module> # info from http://www.techstacks.com/howto/log-client-ip-and-xforwardedfor-ip-in-apache.html LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded CustomLog "logs/access_log" combined env=!forwarded CustomLog "logs/access_log" proxy env=forwarded </IfModule>
结果如下:“目前,它显示了这一点:
`::1 - - [05/Aug/2016:02:49:26 +1200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.23 (Unix) OpenSSL/1.0.1e-fips mod_bwlimited/1.4 (internal dummy connection)"``
我也尝试了各种其他在这里和谷歌的build议configuration,但到目前为止,我没有任何运气。
我的理解是,由于日志logging指令不在logging中,它应该捕获指定的stream量( 详细在这里 ) – 但正如您从示例中看到的那样,它不起作用。
您发布的连接日志是一个内部连接,由apache使用,以保持工作人员的生命。 根本不是游客! 开箱即用的“组合”格式应默认为您提供您所寻求的日志条目。
这将是以下的LogFormat:
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
然后,在您的VirtualHost块中,您需要以下内容:
CustomLog /path/to/access_log combined
如果你在反向代理caching后面,这会变得更有趣一些,但是一个像mod-rpaf这样的apache模块应该可以帮助你。