天空小小岛技术网站

标题: nginx配置 开启nginx日志 [打印本页]

作者: s.Bo    时间: 2010-12-29 14:48
标题: nginx配置 开启nginx日志
本帖最后由 s.Bo 于 2010-12-29 14:49 编辑

nginx 日志相关指令主要有两条,
log_format,用来设置日志格式,
access_log,用来指定日志文件的存放路径、格式和缓存大小

1、log_format 格式
  1. log_format       name( 格式名字)  格式样式(即想要得到什么样的日志内容)
复制代码
默认的示例:
  log_format     main               '$remote_addr - $remote_user [$time_local] "$request" '
                                              '$status $body_bytes_s ent "$http_referer" '
                                              '"$http_user_agent" "$http_x_forwarded_for"'
注释:
$remote_addr   与$http_x_forwarded_for 用以记录客户端的ip地址;
$remote_user   :用来记录客户端用户名称;
$time_local  : 用来记录访问时间与时区;  
$request  :  用来记录请求的url与http协议;
$status     :  用来记录请求状态;成功是200,
$body_bytes_s ent  :记录发送给客户端文件主体内容大小;
$http_referer  :用来记录从那个页面链接访问过来的;
$http_user_agent  :记录客户毒啊浏览器的相关信息;
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址;
  1. log_format     mylogformat     ' $http_x_forwarded_for- $remote_user [$time_local] '
  2.                                               ' "$request"   '$status $body_bytes_s ent '
  3.                                               ' "$http_referer" "$http_user_agent" ';
复制代码
2、用access_log指令日志文件存放路径;
用了log_format 指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径;
access_log        path(存放路径)                   format (自定义日志名称)
示例:
#access_log             logs/access.log              main;
我们用log_format 定义了一个mylogformat的日志 我们可以写成这样
access_log             logs/access.log         mylogformat ;
如果不想启用日志 :
access_log off ;
在定义日志目录中要注意的是,nginx进程设置的用户和组必须有对该路径 创建文件的权限,假设nginx的usr指令设置的用户名 和用户组都是www,而logs 目录的用户名和组是root,那么日志文件将无法被创建;
作者: 八号    时间: 2011-4-30 13:47
日志分析命令
  1. cat x.log|awk -F" " '{print $1}'| sort|uniq -c | sort -rn |head -n 30
复制代码

作者: 中国第一花木网    时间: 2011-7-3 13:54
谢谢楼主,收下了




欢迎光临 天空小小岛技术网站 (http://tkxxd.net/) Powered by Discuz! X3.1