设为首页 收藏本站
查看: 986|回复: 0

[经验分享] 实战Nginx(2)-日志模块

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-29 09:17:01 | 显示全部楼层 |阅读模式
nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令来定义。ngx_http_log_module是用来定义请求日志格式的。

一.日志记录配置详解
1. access_log指令
1
2
3
4
语法: access_log path [format [buffer=size [flush=time]]];
access_log path format gzip[=level] [buffer=size] [flush=time];
access_log syslog:server=address[,parameter=value] [format];
access_log off;



1
2
默认值: access_log logs/access.log combined;
配置段: http, server, location, if in location, limit_except



gzip压缩等级。
buffer设置内存缓存区大小。
flush保存在缓存区中的最长时间。
不记录日志:access_log off;
使用默认main格式记录日志:access_log logs/access.log 或 access_log logs/access.log main;

2. log_format指令
1
2
3
语法: log_format name string …;
默认值: log_format main “…”;
配置段: http




name表示格式名称,string表示等义的格式。log_format有一个默认的无需设置的main日志格式,相当于apache的combined日志格式,如下所示:
1
2
3
log_format  main  '$remote_addr - $remote_user  [$time_local]  '
                  ' "$request"  $status  $body_bytes_sent  '
                  ' "$http_referer"  "$http_user_agent" ';





日志格式允许包含的变量注释如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$remote_addr, $http_x_forwarded_for #记录客户端IP地址
$remote_user  #记录客户端用户名称
$request   #记录请求的URL和HTTP协议
$status    #记录请求状态
$body_bytes_sent #发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
$bytes_sent #发送给客户端的总字节数。
$connection #连接的序列号。
$connection_requests #当前通过一个连接获得的请求数量。
$msec #日志写入时间。单位为秒,精度是毫秒。
$pipe #如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
$http_referer #记录从哪个页面链接访问过来的
$http_user_agent #记录客户端浏览器相关信息
$request_length #请求的长度(包括请求行,请求头和请求正文)。
$request_time #请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
$time_iso8601 #ISO8601标准格式下的本地时间。
$time_local #通用日志格式下的本地时间。




二.配置http段的日志格式为apache风格的日志,在虚拟主机中调用;
  • 编辑主配置文件,配置http段的默认日志格式:

1
2
3
4
[iyunv@www ~]# vim /etc/nginx/nginx.conf
log_format  main  '$remote_addr - $remote_user  [$time_local]  '
                  ' "$request"  $status  $body_bytes_sent '
                  ' "$http_referer"  "$http_user_agent" ';




2.在虚拟主机中调用;
1
2
3
4
5
6
7
8
[iyunv@www ~]# vim /etc/nginx/extra/nginx-vhost.conf
server {
        listen       80;
        server_name www.stu31.com;
        index index.html index.htm index.php;
        root  /www/vhosts/www1;
        access_log  /var/log/nginx/www.stu31.com.log main ;
}




3.语法检查:
1
2
3
[iyunv@www ~]# service nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful




4.重启nginx服务:
1
2
3
4
5
[iyunv@www ~]# service nginx restart
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]




5.连接测试:
1
2
3
4
[iyunv@www ~]# elinks -dump http://172.16.31.40
   172.16.31.40 www.stu31.com
[iyunv@www ~]# elinks -dump http://www.stu31.com
   172.16.31.40 www.stu31.com




6.查看日志:
1
2
3
4
5
6
7
8
9
10
11
[iyunv@www ~]# tail /var/log/nginx/www.stu31.com.log
172.16.31.254 - - [27/Dec/2014:10:37:56 +0800] GET / HTTP/1.1304 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 -
127.0.0.1 - - [27/Dec/2014:10:40:17 +0800] GET / HTTP/1.1200 27 - ELinks/0.12pre5 (textmode; Linux; -) -
127.0.0.1 - - [27/Dec/2014:10:40:29 +0800] GET / HTTP/1.1200 27 - ELinks/0.12pre5 (textmode; Linux; -) -
172.16.31.254 - -  [27/Dec/2014:11:38:48 +0800]   "GET / HTTP/1.1"  304  0  "-"  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"
172.16.31.254 - -  [27/Dec/2014:11:38:50 +0800]   "GET / HTTP/1.1"  304  0  "-"  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"
172.16.31.254 - -  [27/Dec/2014:11:38:50 +0800]   "GET / HTTP/1.1"  304  0  "-"  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"
172.16.31.254 - -  [27/Dec/2014:11:38:52 +0800]   "GET / HTTP/1.1"  304  0  "-"  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"
172.16.31.254 - -  [27/Dec/2014:11:38:58 +0800]   "GET / HTTP/1.1"  200  27  "-"  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"
172.16.31.40 - -  [27/Dec/2014:11:39:54 +0800]   "GET / HTTP/1.1"  200  27  "-"  "ELinks/0.12pre5 (textmode; Linux; -)"
127.0.0.1 - -  [27/Dec/2014:11:40:00 +0800]   "GET / HTTP/1.1"  200  27  "-"  "ELinks/0.12pre5 (textmode; Linux; -)"






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-39524-1-1.html 上篇帖子: 实战Nginx(1)-虚拟主机基础配置 下篇帖子: 实战Nginx(3)-访问控制与用户认证模块及nginx内置状态页介绍 虚拟主机 服务器 能力 网站 资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表