Nginx之Nginx日志

1.错误日志

错误日志就是记录当前网站访问失败的记录。

  • Nginx配置错误日志:

语法:erroer_log file(存放错误日志路劲)    file[level](日志级别);

默认格式:error_log logs/error.log erroer;

支持位置模块:main;http,stream,server,location

  • 日志级别:

 常见的错误日志级别有[debug | info | notice | warn | error | crit | alert | emerg],级别越高记录的信息越少。生产场景一般是 warn | error | crit 这三个级别之一

示例:

$ vim /opp/app/nginx/conf/nginx.conf

#开启错误日志
error_log  /data/logs/nginx/nginx_error.log  warn;     #我直接设置在main中,所有的错误日志都记录进去,也可以设置在针对单个域名进行设置。

#关闭错误日志
error_log /dev/null


$ nginx -s reload 

$ cat /data/logs/www/nginx_error.log  #错误日子信息,格式是固定的,看的很明白了,就不解释了

2019/09/29 02:59:33 [error] 8860#0: *3 open() "/home/ac/favicon.ico" failed (2: No such file or directory), client: 10.28.88.106, server: 10.28.88.199, request: "GET /favicon.ico HTTP/1.1", host: "10.28.88.199"


2.访问日志

访问日志就是记录用户访问信息,通过访问日志可以分析用户数据,非常有用的。

访问日志分为2部分,一部分是log_format  一部分是access_log

2.1 log_format

log_format主要是设置访问日志格式,让用户访问的信息以什么样方式来展现给你,可以自定义,也有默认的一个log_format访问结构。

格式:log_format name(定义当前格式名字,需要被后面的access调用的,当初不注意这个,恰了好大的亏) 具体格式

2.2 access_log

格式: access_log path(log_format定义的name)  [format [buffer=size] gzip=[level] [flush=time] [if=condition]]

          access_log off;关闭访问日志

后面[ ]的内容:buffer 是设置缓冲大小(32k 64k 都差不多)  gzip 压缩登记(1-9) flush 设置缓冲数据落地到磁盘的时间看情况设置,if是其他设置([ ] 这里面的内容可选设置主要看需求,一般情况是用不到)

示例:

log_format jflog '$remote_addr | $remote_user | $time_local | $request | $status | '
            '$bytes_sent | $body_bytes_sent | $host | $http_referer | $http_user_agent | '
            '$upstream_addr | $gzip_ratio | $http_x_forwarded_for | $request_time | $upstream_response_time';

        #参数介绍
        $remote_addr         #获取客户端地址 
    注:当Nginx作为web后端,前面有代理,负载均衡等服务的时候,只能获取前端地址,想要获取真正客户端地址得靠$http_x_forward_for参数,
但是需要前端开启x_forward_for功能,
        $remote_user         #记录远程客户端用户
        $time_local          #记录访问时间跟时区信息
        $request             #记录请求信息(url,http协议) "GET / HTTP/1.1"
        $status              #记录客户端获取请求返回的请求码,200,304,404等等
        $bytes_sent          #记录Nginx返回给客户端的字节数(整个响应内容大小)
        $body_bytes_sent     #记录客户端请求的主体大小(也就是实际内容的大小,在缓冲缓存配置那里有篇博客详细的介绍了请求及响应构成)
        $http_referer         #url跳转来源,可以轻松查询倒链的问题。
        $http_user_agent      #用户终端浏览器等信息
        $upstream_addr        #后端服务器地址
        $gzip_ratio           #获取gzip压缩比率
        $http_x_forwarded_for    #获取客户端真实ip(需要前端开启x_forward_for功能)
        $host
        $request_time          #记录Nginx处理请求的时间
        $upstream_response_time #记录php-cgi的响应时间
        $scheme #请求使用的Web协议,“http” 或 “https”
        $http_cdn_src_ip #获取客户的真实ip(前提是当前机器是走cdn的)

#具体设置access_log方法
# cat /opt/app/nginx/conf/vhost/7240.conf
server {
    listen 80;
    server_name 192.168.1.104;

     root /opt/src;
     access_log /data/logs/www/dx4.7240.com.log jflog(你在log_format自定义的日志名字);

}

 

官方示例:
log_format compression '$remote_addr - $remote_user [$time_local] '
                       '"$request" $status $bytes_sent '
                       '"$http_referer" "$http_user_agent" "$gzip_ratio"';

access_log /spool/logs/nginx-access.log compression buffer=32k;

官方文档:http://nginx.org/en/docs/http/ngx_http_log_module.html

 

#日志展示结果

$ cat /data/logs/www/dx4.7240.com.log   #下面就是以log_format展示的日志文件信息

192.168.1.100 | - | 01/Oct/2019:08:43:42 -0400 | GET /favicon.ico HTTP/1.1 | 404 | 310 | 162 | 192.168.1.104 | - | Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko | - | - | - | 0.000 | -

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值