zoukankan      html  css  js  c++  java
  • nginx的access_log与error_log

           参考文章:https://juejin.im/post/5aa09bb3f265da238f121b6c

          本篇文章主要介绍一下 nginx 服务器两种日志查看:access_log、error_log

          access_log:指的是访问日志,我们通过访问日志可以获取用户的 IP、请求处理的时间、浏览器信息等

          error_log:错误日志记录了访问出错的信息,可以用于定位错误的原因

          设置 access_log

          访问日志主要用于记录客户端的请求。客户端向 nginx 服务器发起的每一次请求都会被记录到 access_log 中。

          包含请求 IP、时间、访问 url等等,当然访问日志中具体记录哪些日志信息我们可以通过 log_format 设置

          查看日志存放地址

          find / -name nginx.conf

          

          根据查询出来地址,进入 nginx.conf 文件查找 access_log 和 error_log 文件的路径

          

          

          设置 access_log 语法:

    access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; # 设置访问日志
    access_log off; # 关闭访问日志
    path 表示指定日志存放位置
    format 表示日志格式即日志中记录的内容
    buffer 用于指定日志写入时的缓存大小,默认 64k
    gzip 日志写入前先压缩。压缩率可以指定,从1到9数值越大压缩比越高,同时压缩的速度也越慢,默认1
    flush 设置缓存的时间,如果超过flush指定的时间,缓存中的内容将被清空
    if 判断条件,如果指定的条件计算为0或空字符串,那么该请求不会被写入日志
    

       设置 buffer 的目的,是为了避免高频对磁盘进行读写操作,即暂时先不将日志写入磁盘,而是存入内存中,等达到了设置缓存大小之后再一次性

         写入,注意 flush 指令是和 buffer 一起使用的,即指定 buffer=size 之后,如果超过 flush 指令设定的时间仍然未达到缓存区大小,则也会被写入到

        磁盘,没有 buffer 而只有 flush 则会报错

          基本用法

    access_log /var/logs/nginx-access.log
    

      上面的例子指定日志的写入路径为 /var/logs/nginx-access.log 日志格式默认使用 combined

    access_log /var/logs/nginx-access.log buffer=32k gzip flush=1m
    

      该例子指定日志写入路径为 /var/logs/nginx-access.log 日志格式默认使用 combined ,日志的缓存大小为 32k,日志写入前启用

           gzip 压缩,压缩比值 1,缓存数据的有效时间为 1 分钟

        查看 access 访问日志(日志摘抄来自网上,主要用于说明问题)

          访问日志分析

          摘出来一段部分分析:

    100.109.195.91 - - [17/Feb/2017:00:08:11 +0800] "GET /data/upload/shop/common/loading.gif HTTP/1.0" 200 134 "http://www.mall121.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0; Windows NT 6.1; SLCC2 2.5.5231; .NET CLR 2.0.50727; .NET CLR 4.1.23457; .NET CLR 4.0.23457; Media Center PC 6.0; MS-WK 8)" "140.205.201.12"
    100.109.195.78 - - [17/Feb/2017:00:08:11 +0800] "GET /shop/templates/default/images/u-safe.png HTTP/1.0" 200 3675 "http://www.mall121.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0; Windows NT 6.1; SLCC2 2.5.5231; .NET CLR 2.0.50727; .NET CLR 4.1.23457; .NET CLR 4.0.23457; Media Center PC 6.0; MS-WK 8)" "140.205.201.12"
    100.109.195.26 - - [17/Feb/2017:00:08:11 +0800] "GET /data/upload/shop/adv/05240495346955824.jpg HTTP/1.0" 404 564 "http://www.mall121.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0; Windows NT 6.1; SLCC2 2.5.5231; .NET CLR 2.0.50727; .NET CLR 4.1.23457; .NET CLR 4.0.23457; Media Center PC 6.0; MS-WK 8)" "140.205.201.12"
    1.100.109.195.91  $remote_addr 客户端(用户) IP地址
    2.[17/Feb/2017:00:08:11 +0800] $local_time 访问时间
    3."GET /data/upload/shop/common/loading.gif HTTP/1.0" $request GET请求的 url 地址
    4.200 $status 请求状态
    5.134 $body_bytes_sent 请求页面大小,默认 B
    6."http://www.mall121.com/" $refer 页面来源即从哪个页面跳转过来,专业叫refer
    7."Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0; Windows NT 6.1; SLCC2 2.5.5231; .NET CLR 2.0.50727; .NET CLR 4.1.23457; .NET CLR 4.0.23457; Media Center PC 6.0; MS-WK 8)"  $http_user_agent 用户浏览器信息,包含版本、类型等
    8."140.205.201.12" $http_x_foewarded_for  php中可以通过你此项获取用户真实ip地址
    

      我们也可以根据自己需要日志信息在 nginx 配置文件中修改日志格式

           设置 error_log

           配置错误日志文件的路径和级别

    error_log file [level];
    Default:	
    error_log logs/error.log error;
    

        第一个参数指写入错误日志的路径

          第二个参数指日志的级别。level 可以是:debug、info、notice、warn、error、crit、alert、emerg 中的任意值。只有日志的错误级别

          大于等于level 指定的值才会被写入错误日志中,默认值是 error

  • 相关阅读:
    shell编程 之 引号、括号的用法总结
    shell编程 之 文件包含
    shell编程 之 输入输出重定向
    shell编程 之 流程控制(条件语句和循环语句)
    shell编程 之 函数
    IOS 定位
    IOS添加多个按钮在导航栏
    移除UIView上面的所有控件
    UITabBarController
    IOS 调用拨打电话Api
  • 原文地址:https://www.cnblogs.com/leeyongbard/p/10880356.html
Copyright © 2011-2022 走看看