Apache日志 - %a和%h之间有什么区别?

时间:2009-06-05 07:12:23

标签: apache

%a是“远程IP地址”,%h是“远程主机”,但是当我测试它时,两者都打印出相同的IP地址。有什么区别?

日志格式“%a%h:

的日志输出示例
192.168.1.2 192.168.1.2
192.168.1.2 192.168.1.2
192.168.1.2 192.168.1.2

2 个答案:

答案 0 :(得分:4)

如果resolveHosts属性设置为True,则远程主机值会尝试对IP地址执行DNS查找以为您提供主机名。如果没有,远程主机只返回远程IP地址。

答案 1 :(得分:1)

%h是主机名,%a是IP地址。如果apache正在进行名称解析,%h将仅显示主机名。这可能会显着减慢您的服务器速度,通常不建议这样做。

以下对%h的描述直接取自Apache documentation: -

  

这是向服务器发出请求的客户端(远程主机)的IP地址。如果HostnameLookups设置为On,则服务器将尝试确定主机名并将其记录以代替IP地址。但是,建议不要使用此配置,因为它会显着减慢服务器的速度。相反,最好使用日志后处理器(如logresolve)来确定主机名。此处报告的IP地址不一定是用户所在机器的地址。如果用户和服务器之间存在代理服务器,则该地址将是代理的地址,而不是原始机器。