Nginx访问日志access.log

 1、Nginx访问日志(access.log)介绍

NGINX软件会把每个用户访问网站的日志记录到指定的日志文件里,供网站者分析用户的浏览行为,此功能由http_log_module模块负责。

 

2、访问日志参数

Nginx的访问日志主要有两个参数控制

参数

说明

log_format

用来记录日志的格式(可以定义多种日志格式,取不同名字即可)

access_log

用来指定日志文件的路径及使用何种日志格式记录日志

 

Nginx日志默认参数配置如下,

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

Nginx记录日志默认参数配置如下,

   access_log  logs/access.log  main;

 

3、访问日志配置说明

日志的格式定义说明

语法

   定义变量 log_format string  ...;

配置再http标签内,日志格式说明,注意所有日志段都已空格分开。

Nginx日志变量说明

Nginx变量

说明

$remote_addr

记录访问网站的客户端地址

$http_x_forwarded_for

当前有地理服务器时,设置web节点记录客户端节点的配置,此参数生效的前提是代理服务器也进行了相关的设置

$remote_user

远程客户端用户名称

$time_local

记录访问时间与时区

$request

用户的http请求起始行信息

$status

http状态码,记录请求返回的状态码,例如200、404、301等

$body_bytes_sent

服务器发送客户端的响应body字节数

$http_referer

记录此请求是从哪个链接访问过来的,可以根据referer进行防盗链设置

$http_user_agent

记录客户端访问信息,例如:浏览器、手机客户端。

 

4、访问配置验证

以下页面访问后,打印出的日志

192.168.19.1 - - [17/Jul/2020:23:32:35 +0800] "POST /zabbix/jsrpc.php?output=json-rpc HTTP/1.1" 200 75 "http://192.168.19.154/zabbix/zabbix.php?action=dashboard.view&ddreset=1" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"

192.168.19.1 - - [22/Aug/2020:11:30:14 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"

对应说明自行分析,应该不难。

 

5、Nginx访问日志分割

默认情况下,nginx会把所有的访问日志生产到一个指定的access.log文件里面去,时间长了会越积越多,因此有必要对日志进行分割。

按天数分割,具体脚本如下,

[root@www conf]# cat cut_nginx_log.sh

#!/bin/sh

Dateformat=`date +%Y%m%d`

Basedir="/usr/local/nginx"

Nginxlogdir="$Basedir/logs"

Logname="access"

[ -d $Nginxlogdir ] && cd $Nginxlogdir || exit 1

[ -f ${Logname}.log ] || exit 1

/bin/mv ${Logname}.log ${Dateformat}_${Logname}.log

$Basedir/sbin/nginx -s reload

[root@www conf]# sh -x cut_nginx_log.sh   验证脚本,注意生产验证时间

[root@www logs]# ll  查看

total 8

-rw-r--r-- 1 root root   0 Aug 22 12:28 20200822_access.log

每天凌晨00点30分执行脚本

[root@www logs]# crontab -l

# cut nginx access log by sunny

30 00 * * * /bin/sh /usr/local/nginx/conf/cut_nginx_log.sh >/dev/null 2>&1

 

 

posted @ 2020-08-22 12:36  wang_wei123  阅读(2397)  评论(0编辑  收藏  举报