我正在寻找一种方法来强制 apache 服务器根据自定义日志格式记录所有客户端信息。
当某些网站通过反向代理访问时,就会出现这个问题。因此,将日志格式配置如下:
LogFormat“%h%{X-Forwarded-For}i%u%t \“%r\”%>s%b \“%{Referer}i\” \“%{User-Agent}i\””组合
但是日志不能被 awstat 处理。我在想,我们能否有两种日志格式。
LogFormat "%h %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" 组合 LogFormat "%{X-Forwarded-For}i %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" 反向代理
并具有一些类似 if else 条件的变量。例如,如果我看到请求来自 1.1.1.1(这是我的反向代理 ip),那么 apache 需要使用 reverseproxy 日志格式。
寻求专家答复。
答案1
文档中正好有您需要的示例:http://httpd.apache.org/docs/2.2/logs.html#accesslog
请参阅“条件日志”部分。
答案2
也许你可以使用 /usr/bin/tee
我们以这种方式拆分我们的 ErrorLog(将错误也记录到 syslog 中):
ErrorLog "|/usr/bin/tee -a /var/log/apache2/error.log |/usr/bin/logger -t apache2 -p local1.info"