zoukankan      html  css  js  c++  java
  • Nginx 日志配置

    nginx access_log

    nginx 日志说明

    不同用户防卫Nginx会把每个用户访问往咱的日志信息记录到指定的日志文件里,供网站管理员分析用户浏览行为等,此功能又ngx_http_log_module 模块负责。

    控制访问日志的参数

    参数 说明
    log_format 通过不同的名称来定义日志的输出格式,可以定义多个
    access_log 用来指定日志保存的路径和使用的输出格式

    nginx中日志的作用

    • access日志

    记录nginx处理的请求的过程,包含请求类型、时间、客户端信息、处理结果、处理时长等信息,具体可以通过log_format指令引用特定变量来记录相关信息。

    • error日志

    记录nginx进程启动、停止、重启及处理请求过程中发生的错误信息。

    • rewrite日志

    记录rewrite规则工作的过程,可以用于调试rewrite规则。

    nginx中可以记录的日志主要有access日志、error日志和rewrite日志。前两种由ngx_http_log_module模块予以支持,rewrite日志则由ngx_http_rewrite_module模块提供,这两个模块默认都已包含且启用。

    自定义一个 nginx 日志格式

    # 定义一个日志的输出格式
    log_format main '$remote_addr - $remote_user [$time_local] "$request"  $status $body_bytes_sent "$http_referer"  "$http_user_agent" "$http_x_forwarded_for"';
    # 指定日志的报错位置和指定日志的输出格式为上面定义的格式(main为上面定义的日志标签)
    access_log         logs/access.log main;
    
    

    log_format 语法格式及参数语法说明

    log_format [name [string];
    
    name表示格式名称,string表示等义的格式。log_format有一个默认的无需设置的combined日志格式,相当于apache的combined日志格式。
    
    log_format格式变量:
    
    $http_referer          # 记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。
    $http_user_agent       # 记录客户端访问信息,例如:浏览器、手机客户端等
    $remote_addr           # 记录客户端IP地址
    $http_x_forwarded_for  # 当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置
    $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            # 通用日志格式下的本地时间。
    
    

    access_log语法格式及参数语法

    access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
    
    作用域   : http, server, location, if in location, limit_except
    
    其他参数说明
    
    access_log  off;  #关闭access_log,即不记录访问日志
    
    access_log path [format [buffer=size [flush=time]] [if=condition]];
    
    access_log path format gzip[=level] [buffer=size] [flush=time] [if=condition];
    
    access_log syslog:server=address[,parameter=value] [format [if=condition]];
    
    说明:
    
    buffer=size       # 为存放访问日志的缓冲区大小
    
    flush=time        # 为缓冲区的日志刷到磁盘的时间
    
    zip[=level]       # 表示压缩级别
    
    [if = condition]  # 表示其他条件
    
    
    
    

    open_log_file_cache指令

    
    语法格式: 
    open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
    
    使用open_log_file_cache来设置日志文件缓存(默认是off)。
    
    默认值: open_log_file_cache off;
    作用于: http, server, location
    
    对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off),格式如下:
    参数注释如下:
    max       # 设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述符关闭。
    inactive  # 设置存活时间,默认是10s
    min_uses  # 设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次
    valid     # 设置检查频率,默认60s
    off       # 禁用缓存
    
    
    
  • 相关阅读:
    路由器DHCP 动态主机配置
    nat转换
    静态路由的实验
    不同vlan之间的相互访问
    IP的包头格式什么?请分析每个字段的含义
    IP地址的分类
    关于对JSON.parse()与JSON.stringify()的理解
    Ajax工作原理
    关于css伪类
    开发 | 如何在微信小程序的页面间传递数据?
  • 原文地址:https://www.cnblogs.com/janlle/p/10771408.html
Copyright © 2011-2022 走看看