Nginx日志
在nginx目录下面有一个logs目录存储日志
日志目录下文件的介绍
- access.log:该日志文件是用来记录客户在访问该nginx时产生的每一个请求,格式可以自定义,通过访问日志就可以得到用户地域来源跳转来源,使用终端,某个URL访问等相关信息。
- error.log:错误日志,主要是记录客户端访问Nginx错误时产生的日志,格式不支持自定义,通过错误日志。可以得到系统的某个服务或者server的性能瓶颈。因此将错误日志好好利用,可以得到很多有价值的信息。
- nginx.pid:该日志文件主要是用来记录nginx的master进程的pid,当nginx服务启动时,会自动在该目录下生成该进程的pid文件。
在没有使用nginx的时候我们查看access.log的大小
然后我们可以多次访问浏览器,再查看access.log的内容和大小
$remote_addr(远程IP) $remote_user(远程用户) [$time_local](访问时间) $request"(请求方式) $status(状态302、404、401、403等) $body_bytes_sent(请求体 body 长度等) $http_referer"(referer来源信息) $http_user_agent(用户代理)" $http_x_forwarded_for(被转发的请求的原始IP)
日志管理
我们为了方便管理nginx的日志,可以把日志按照日期分开保存起来
我们先做一个简单的,生成一个昨天的日期+access.log日志
我们怎么获取昨天的日期呢?
然后
mv access.log `date +%F -d -1day`_access.log
ls 查看一下
但这只有一个昨天日期_access.log,没有之前的access.log继续存储新的日志
我们需要把日志重新开启,这时候查看access.log发现它的大小就是0了
我们可以让电脑每天都固定一个时间(例如凌晨)进行这个操作,就可以实现日志的分类管理
写一个shell脚本
方式一:
#!/bin/bash
LOGS_PATH=/usr/local/nginx/logs/oldlogs
CUR_LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date +%F -d -1day)
mv $CUR_LOGS_PATH/access.log $LOGS_PATH/${YESTERDAY}_access.log
mv $CUR_LOGS_PATH/error.log $LOGS_PATH/${YESTERDAY}_error.log
#kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
/usr/local/nginx/sbin/nginx -s reopen
方式二:
[root@server1 logs]# vim backup.sh
#!/bin/bash
LOGS_PATH=/usr/local/nginx/logs/oldlogs
CUR_LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date +%F -d -2day)
mv $CUR_LOGS_PATH/access.log $LOGS_PATH/${YESTERDAY}_access.log
mv $CUR_LOGS_PATH/error.log $LOGS_PATH/${YESTERDAY}_error.log
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
先试着执行一下脚本看脚本有没有问题
然后crontab添加定时命令实现每天凌晨执行脚本进行nginx日志管理
crontab -e
crontab -l查看