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 @   wang_wei123  阅读(2478)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2019-08-22 Python常用基础模块报错处理
2019-08-22 ScureCRT基础用法
点击右上角即可分享
微信分享提示