nginx日志管理:
nginx访问日志放在logs/host.access.og下,并且使用main格式(还可以自定义格式)
对于main格式如下定义:
#日志文件输出格式这个位置相于全局设置
#log format main '$remote addr .$remote user [$time local] "$request"’
# 'Sstatus $body bytes sent "$http referer" ‘
# “"$http user agent" "$http x forwarded for"";
查看日志内容命令: tail -n 100 -f nginx/logs/access.log
我们在日常开发中,对nginx日志的分析非常的重要,通常需要运维去对nginx的日志进行切割和分析处理。比如实现一个定时任务,去处理nginx日志等。
第一步:分析如何去实现日志切分,编写shell脚本
第二步:定时任务对脚本进行调度:crontab-e
*/1 * * * * sh /usr/localnginx/sbin/log.sh
cd 到 log下
Negix.Pid中存的是进程文件
access.log 是访问的日志文件(受浏览器缓存影响)
日志切分 shell 脚本
#!/bin/sh
BASE_DIR=/usr/local/nginx // 基础路径
BASE_FILE_NAME=bhz.com.access.log // 日志文件名
CURRENT_PATH=$BASE_DIR/logs // /usr/local/nginx/logs
BAK_PATH=$BASE_DIR/datalogs //备份的文件夹下(先创建文件夹)
CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME //当前的文件
BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M` //备份的时间 一般不要%Y%m%d昨天的日志
BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME //文件路径时间文件名
echo $BAK_FILE
$BASE_DIR/sbin/nginx -s stop //停掉日志文件
mv $CURRENT_FILE $BAK_FILE // 把当前日志文件一定到备份文件
$BASE_DIR/sbin/nginx //重启negix
*/1 * * * * sh /usr/localnginx/sbin/log.sh 每分钟备份一次
当前文件夹下已经有日志了