nginx 日志切割

1.ngnix 是一个良好的页面服务器,适用于高并发场景,无论什么系统日志是非常重要的,它能有助于我们分析一些问题。

首先我们查看nginx 配置nginx.conf ,配置文件有几个区间模块,比如我们工作线程配置,http配置等,下面我们就已最熟悉的http作为讲解。

server {

        listen 8080;

        server_name 192.168.1.204;

        location / {

                root /var/www/html8080;

                index index.html;

        }

access_log   /logs/ demo.log  main

    }

上面是一个普通配置,那么在我们生产环境中,可能有很大访问量,那么日志文件会暴增,此时我们就有必要动态生成一些日志文件,这跟我们log4j同理。那么nginx怎么去配置日志分割呢?

1.首先我们要想,我们日志可不可以通过日期进行自动生成比如z.com.20190224.log(域名+日期)

2.那么首先我们创建一个shell脚本,access_log.sh

简单思路:首先我们设置日志生成规则,然后定时,将已生成log备份,重新创建新的日志

base_path='/usr/local/nginx/logs'

log_path=$(date -d yesterday +"%Y%m")

day=$(date -d yesterday +"%d")

mkdir -p $base_path/$log_path

mv $base_path/access.log $base_path/$log_path/access_$day.log

#echo $base_path/$log_path/access_$day.log

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

同时我们方便测试可以每分钟执行一次:

crontab -e  编辑定时脚本 */1 * * * *