日志是我们运维用来分析问题和处理问题的重要维护依据,但是Nginx的日志文件是非常庞大的,而且以文本格式显示导致Nginx的日志直接分析非常困难。但是有时候为了初步处理或紧急处理问题,我们也对直接打开Nginx的日志文件进行分析,这里我们就介绍如何对Nginx的默认日志格式进行分析和含义的解读。
Nginx配置文件中的配置项
在安装好Nginx后系统会默认给你开通access.log访问日志功能,这个配置文件在etc/nginx的文件夹下,打开配置文件后如下面是按行进行的默认格式配置。
log_format main '
$remote_addr -
$remote_user
[$time_local]
"$request" ''
$status
$body_bytes_sent "
$http_referer" ''
"$http_user_agent"
"$http_x_forwarded_for"
';
Nginx日志的配置项目:access_log /var/log/nginx/access.log main;
Nginx日志范例分析
日志写入文本文件是一行行的,这里我们把一行日志,按3个字段进行分行进行分析。
61.135.165.19 - 这里是访问者的IP地址
- 这里是客户名称,但一般获取不到。
[17/Nov/2018:03:39:32 +0800] 这里是访问的时间
"GET /ask/0901/images/a13.jpg HTTP/1.0" 这个是这次记录的访问对象
200 返回的状态码
19916 这条记录访问对象的大小
"http://heb.nrjs.com/ask/0901/index.htm?jh=haerbinlvyou-YD&gjc=7riyoudongbei&e_keywordid=%7Bkeywordid%7D" 这个是从什么入口访问的也就是来源。
"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C;Baiduspider-ads)AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" 这个是客户端浏览器的一些参数
"10.205.160.32" 这里是代理的地址,一般是没有的。
Nginx日志中变量对应的字段
remote_addr 远程请求IP地址
remote_user 客户端用户的名称,没有时用-符合代替
time_local 本地时间戳
request 请求具体URI文件,例如网页中的JPG图片。
status http请求状态
body_bytes_sent 请求文件大小
http_refer 网页url跳转来源,源地址,可以伪造。例如一个HTML网页然后调用图片URI资源。
http_user_agent 用户终端浏览器UserAgent的相关信息
http_x_forwarded_for 是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项
其他非默认的选项
host 请求host地址
request_time 整个请求的总时间
upstream_addr 后台提供服务的地址(即转发处理的目标地址)
upstream_reponse_time 请求时,upstream的响应时间
upstream_status upstream状态
Nginx默认access.log访问日志格式分析
本文由作者自行上传发布,文章仅代表作者个人观点。如需转载,务必声明出处和网址,否则保留相关权利。
网友评论 comments