Nginx-日志log部分详解-第一部分

1.日志配置

官方文档:Module ngx_http_log_module

日志模块名称:ngx_http_log_module

(1)  log_format  日志格式

(2)  access_log   访问日志

(3) error_log  错误日志

(4) open_log_file_cache  日志缓存

open_log_file_cache  max=N [inactive=time]  [mim_uses=N]  [valid=time]  | off

该指令默认是禁止的,等同于:
open_log_file_cache off;

open_log_file_cache 指令的各项参数说明如下:
max: 设置缓存中的最大文件描述符数量。如果超过设置的最大文件描述符数量,则采用  LRU (Least Recently Used) 算法清除"较不常使用的文件描述符"。  LRU (Least Recently Used) 算 法的基本概念是:当内存缓冲区剩余的可用空间不够时,缓冲区尽可能地先保留使用者最常使用 的数据,将最近未使用的数据移出内存,腾出空间来加载另外的数据。

inactive:  设置一个时间,如果在设置的时间内没有使用此文件描述符,则自动删除此描述符。 此参数为可选参数,默认的时间为 10 秒钟。

min_uses: 在参数 inactive 指定的时间范围内,如果日志文件超过被使用的次数,则将该日 志文件的描述符记入缓存。默认次数为 1。

valid: 设置多长时间检查一次,看一看变量指定的日志文件路径与文件名是否仍然存在。默 认时间为 60秒。
off: 禁止使用缓存。

open_log_file_cache  指令的设置示例如下:
open_log_file_cache  max=1000  inactive=20s  min_uses=2  valid=1m; 

日志格式和命令:log_format

简介:nginx有非常灵活的日志记录模式,每个级别的的配置可以都有各自独立的访问日志。日志格式通过log_format命令定义

语法:syntax:log_format name [escape=default|  json] string     name表示格式名称;string表示定义的格式

默认值:Default: log_format combined "..."; log_format 有默认的无需设置的combined日志格式,相当于apache的combined日志格式

环境:Context: http        context

网站,LB,全局和局部
代理:例如代理服务器的日志格式就不同;如果Nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址。
$remote_addr获取的是反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,
用来记录客户端IP地址和客户端请求的服务器地址。

nginx代理日志格式如下:

log_format porxy '$http_x_forwarded_for - $remote_user [$time_local] '
' "$request" $status $body_bytes_sent '
' "$http_referer" "$http_user_agent" ';

定义设置位置:vim /etc/nginx/nginx.conf

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

解析上述日志变量内容:

$remote_addr      远程地址;记录客户端IP地址
$remote_user      远程用户; 记录客户端用户名称
[$time_local]        本地时间;服务器自身时间
$request    请求;记录请求的URL和HTTP协议:"GET /1.html HTTP/1.1"
$status    状态;记录请求状态:

$boby_bytes_sent   发送给客户端的字节数,不包括响应头的大小

$http_user_agent    记录客户端浏览器相关信息:火狐或者IE等

$http_x_forwarded_for     代理IP

小提示:

访问日志中总有:404的报错提示:

为了避免增加更大的访问存储量可以关闭:解决问题

server  {

liisten   80;

server_name      自己的域名(A,com);

root  /usr/share/nginx/html;

access_log  /var/log/nginx/access.log   main;

error_log  /var/log/nginx/error.log      debug;

location  = /favicon.ico  {

log_not_found  off;

access_log off;

}

location /  {

index   index.html;

include /etc/nginx/default.d/*.conf;

}

}

访问日志和错误日志:

access_log/error_log

access_log某条记录

192.168.100.254 - - [17/Dec/2017:14:45:59 +0800] "GET /nginx-logo.png HTTP/1.1" 200 368 "http://192.168.100.10/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0" "-"

error_log:设置个性化错误日志

进入主配置文件

server {

error_papg 404/404.html;

location  = /404.html {

root   /自己命名文件(linux);

}

}

提示必须保证根下有自己命名的的文件夹里面有404.html ,404.html里面再插入你想换的个性化东西即可

保存重启nginx即可

日志缓存:大量访问到来时,对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭.占用了系统的IO,与业务无关。
可以使用open_log_file_cache来设

syntax:

open_log_file_cache max=1000 inactive=20s min_uses=3 valid=1m ;总结:缓存最多1000个,到了极限,每分钟开始清除掉  20秒内小于3次的文件的FD

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值