Nginx高性能服务器安装、配置、运维 (6) —— Nginx日志及日志分割

 

七、Nginx日志及日志分割

(1)Nginx日志文件

查看Nginx配置文件:

找到access_log,yum安装默认存储在/var/log/nginx目录下,且默认main格式:

main格式定义:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
         '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" "$http_x_forwarded_for"';

以上含义:

访问IP  -  访问用户[访问时间]  请求方法(GET/POST)    请求体body长度   referer来源信息

http-user-agent用户代理/蜘蛛   被转发的请求的原始IP

查看默认main格式的日志文件:

(2)Nginx日志分割

 Nginx不同于apache,需要将其日志进行定期切割,不然日志文件的日积月累会越加庞大,导致读取缓慢,为此需要做定时切割任务。

 实验性步骤:

a.查看 日志文件位置

 

 b.撰写日志分割脚本

 

 脚本代码:

base_path='/var/log/nginx'                    #设定默认日志文件所在目录
log_path=$(date -d yesterday +"%Y%m")             #设定新日志文件目录
day=$(date -d yesterday +"%Y%m%d%H%M")           #设定日期变量 
mkdir -p $base_path/logs/$log_path                #创建日志存放目录(按月)
mv $base_path/access.log $base_path/logs/$log_path/access_$day.log    #移动Nginx默认日志文件并按date变量重命名
kill -USR1 `cat /var/run/nginx.pid`                 #重读日志

 c.Crontab 定时执行:

 代码:*/1 * * * * sh /var/log/nginx/cutlog.sh           #每分钟执行一次

d.每隔1分钟刷新访问服务器,发现自动化脚本已被执行,每分钟生成一个日志文件:

最终自动化执行脚本代码:

base_path='/var/log/nginx'
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%Y%m%d")
mkdir -p $base_path/logs/$log_path
mv $base_path/access.log $base_path/logs/$log_path/access_$day.log
kill -USR1 `cat /var/run/nginx.pid`

01 00 * * * /var/log/nginx/cutlog.sh           #设定每天凌晨0点执行

 (本文由kayvan编辑发表,内容主要收集于互联网,转载请注明出处:http://www.cnblogs.com/kayvan

原文地址:https://www.cnblogs.com/kayvan/p/3978785.html