Nginx技术问答:http://linux.xyz/topic/Nginx

日志切割

当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大。文件大速度就会慢下来,比如一个文件几百兆。写入日志的时候,会影响操作速度。另外,如果我想看看访问日志,一个几百兆的文件,下载下来打开也很慢。

为了方便对日志进行分析计算,需要对日志进行定时切割。定时切割的方式有按照月切割、按天切割,按小时切割等。最常用的是按天切割。

编写shell脚本

#!/bin/bash
# 设置日志文件存放目录
logs_path="/var/logs/nginx/"
# 设置pid文件
pid_path="/usr/local/nginx/nginx.pid"
# 重命名日志文件
mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
# 向nginx主进程发信号重新打开日志
kill -USR1 `cat ${pid_path}`

设置定时任务

$ crontab -e

添加内容如下

0 0 * * * bash /usr/local/nginx/nginx_log.sh

这样在每天的夜晚12点就会自动创建备份文件了。