1. 闲不住的人首页
  2. 网站服务

Nginx访问日志模块

ngx_http_log_module 访问日志模块,默认情况下 Nginx 的日志格式,有时不能满足我们的实际需求。可以通过日志模块自定义日志格式。

1. access_log指令

access_log 指令,用于设定 Nginx 访问日志的存储位置,以及缓冲区的大小,是否压缩。

配置语法:

Syntax: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
        access_log off;
Default: access_log logs/access.log combined;
Context: http, server, location, if in location, limit_except    
# buffer=size:设置缓存区大小;
# gzip=level:设置压缩等级;
# flush-time:保存在缓存区的时长;

2. log_format指令

该指令用于设置 Nginx 访问日志的格式。

配置语法:

Syntax: log_format name [escape=default|json] string ...;
Default: log_format combined "...";
Context: http
# name:表示格式名称,类似于定义一个跟httpd日志定义中combined
# string:表示定义的格式

log_format 有一个默认的无需设置的 combined 日志格式,相当于 httpd 的combined 日志格式,如下所示:

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

常见的 log_format 变量如下,更多变量的作用参考官方文档核心模块中 Embedded Variables 的说明:

$remote_addr    //表示客户端地址
$remote_user    //http客户端请求nginx认证用户名
$time_local     //Nginx的时间
$request        //Request请求行, GET等方法、http协议版本
$status         //respoence返回状态码
$body_bytes_sent    //从服务端响应给客户端body信息大小
$http_referer       //http上一级页面, 防盗链、用户行为分析
$http_user_agent    //http头部信息, 客户端访问设备
$http_x_forwarded_for   //http请求携带的http信息

3. open_log_file_cache指令

用来配置访问日志的缓存。

配置语法:

Syntax: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
        open_log_file_cache off;
Default: open_log_file_cache off;
Context: http, server, location
# max=N:最大缓存条目;
# inactive=time:非活动时长;
# min_uses=N:最少使用次数;
# valid=time:验证缓存条目有效性的频率;

4. 日志模块配置示例

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

access_log  logs/access.log  main;
open_log_file_cache max=1000 inactive=10s min_uses=2 valid=1m;

原创文章,作者:恩志,如若转载,请注明出处:https://www.xbzdr.com/332.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:510749025@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code