访问日志记录用户的每一个请求
打开apache主配置文件
vim /usr/local/apache2.4/conf/httpd.conf
主配置文件里提供了两种日志的模板:common和combined
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
主配置文件里预设日志模板是common
CustomLog "logs/access_log" common
可以在虚拟主机里面更改日志模板
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/aaa.com"
ServerName aaa.com
ServerAlias www.aaa.com www.abc.com
ErrorLog "logs/aaa.com-error_log"
CustomLog "logs/aaa.com-access_log" common
</VirtualHost>
//可以根据需求,把common改成combined
COMBINED 日志模板详解
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
它记录的样子是这样的:
59.126.205.242 - - [04/Jan/2009:23:30:57 +0800] "GET /main/images/login/login_05.png HTTP/1.1" 200 1355 "http://exmaple.com/i1.php?fun=login_show" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 FirePHP/0.2.1"
说明如下:
1. 59.126.205.242 是客户端IP
2. 第一个 '-' 是 %l 因为此网页不必认证,所以logname 为空
3. 第二個 '-' 是 %u 因为此网页不必认证,所以username 为空
4. [04/Jan/2009:23:30:57 +0800] 是时间
5. "GET /main/images/login/login_05.png HTTP/1.1" 为客户端的 request
6. 200 %s 是状态,%s 是取得最后的状丰收,数字200代表 OK
7. 1355 排除掉 HTTP的headers后的长度(Bytes)
8. "http://example.com/main/i1.php?fun=login_show" 记录 referer。也就是导到此request的页面的呼叫者,这里可以当来源分析。
9. "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 FirePHP/0.2.1" 是客戶端的浏览器状态。