Nginx日志格式
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
2、说明
$remote_addr :用以记录客户端的ip地址;
$remote_user :用来记录客户端用户名称(如果网站需要登录 记录用户名 没有则-代替);
$time_local : 用来记录访问时间与时区;
$request : 用来记录请求的url与http协议(求情行信息);
$status : 用来记录请求状态码;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer :用来记录从那个页面链接访问过来的;
$http_user_agent :记录客户端浏览器的相关信息;
$http_x_forwarded_for : 做反向代理的时候可以记录客户端IP
解释
远程用户IP 远程用户 访问的时间 请求的url
返回的状态码 内容大小 用户从哪里过来的(防盗链)
客户端的信息(如浏览器手机客户端等) 做反向代理的时候可以记录客户端IP
示例日志文件
180.153.236.51 - - [17/Jan/2018:10:59:13 +0800] “GET /detail/838.html HTTP/1.1” 404 4945 “http://9qifu.com/detail/838.html” “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.2.2661.102 Safari/537.36; 360Spider” “-”
180.153.236.189 - - [17/Jan/2018:10:59:13 +0800] “GET /detail/823.html HTTP/1.1” 404 4947 “http://9qifu.com/detail/823.html” “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.2.2661.102 Safari/537.36; 360Spider” “-”
42.236.10.115 - - [17/Jan/2018:10:59:14 +0800] “GET /wdlist/901/p/25.html HTTP/1.1” 200 883 “http://www.9qifu.com/wdlist/901/p/25.html” “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.4.2661.102 Safari/537.36; 360Spider” “-”
42.236.10.105 - - [17/Jan/2018:10:59:14 +0800] “GET /wdlabel/p/p/37.html HTTP/1.1” 200 10007 “http://www.9qifu.com/wdlabel/p/p/37.html” “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.4.2661.102 Safari/537.36; 360Spider” “-”
42.236.10.106 - - [17/Jan/2018:10:59:14 +0800] “GET /detail/511.html HTTP/1.1” 200 7732 “http://www.9qifu.com/detail/511.html” "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.4.2661.102
配置
例:
配置网站的访问日志(最好在每一个虚拟主机中配置各自的访问日志 以便以后查看)
vim nginx.conf #在主配置文件中定义main日志类型要添加在http{}里
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
[root@web01 extra]# vim www.conf
server {
listen 80;
server_name www.aaa.com aaa.com 123.aaa.com;
location / {
root html/www;
index index.html index.htm;
}
access_log logs/access_www.log main buffer=32k flush=5s; #main定义日志类型 此段最好添加到location外面
error_log logs/error_www.log error; #错误日志
}
日志级别从低到高
debug 程序或系统的调试信息
info 一般信息
notice 不影响正常功能,需要注意的消息
warning/warn 可能影响系统功能,需要提醒用户的重要事件
err/error 错误信息
crit 比较严重的
alert 必须马上处理的
emerg/panic 会导致系统不可用的
#不记录不需要的访问日志
例:
location ~ .*.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$
{
access_log off;
}
#Nginx日志切割,轮询
mkdir -p /server/scripts/
vim /server/scripts/cut_nginx_log.sh
#!/bin/bash
cd /application/nginx/logs &&
/bin/mv access.log access_$(date +%F -1day).log
#将日志按日期改成前一天的名称
/application/nginx/sbin/nginx -s reload
#重新加载Nginx使得触发重新生成的访问日志文件
也可以利用reopen在重写日志
/application/nginx/sbin/nginx -s reopen