nginx日志管理

log_format指令用来设置日志的记录格式
语法:
log_format name format [format.......]
具体格式:
log_format main '$http_x_forwarded_for-$remote_user[$time_local]' '"$request" $status $body_byte_sent' '"$http_referer" "$http_user_agent"'
$http_xforwarded_for用于记录客户机真实ip地址
$remote_user用于记录客户端用户名称
$time_local用于记录访问时间和时区
$request用于记录请求的URL与HTTP协议
$status用于记录请求的状态,例如成功时状态为200,页面找不到时为404
$body_bytes_sent用于记录发送给客户端的文件主体内容大小
$http_referer用于记录是从哪个页面链接访问过来的
$http_user_agent用于记录客户端浏览器的相关信息
定义日志:
access_log /data/log/$server_name.log main buffer=32k
buffer=32k:表示设置内存缓冲区的大小
开启日志缓存:
对于每一条日志记录,日志文件都将先打开文件,再写入日志记录,然后马上关闭,为了提高包含变量的日志文件存放路径的性能,可以使用open_log_file_cache指令来设置,格式如下:
open_log_file_cache max=N[inactive=time] [min_users=N] [valid=time] |off
该指令默认是禁止的,等同于:
open_log_file_cache off;
max: 设置缓存中的最大文件描述符数量
inactive:设置一个时间,如果在设置的时间内没有使用此文件描述符,则自动删除此描述符
min_users:在参数inactive指定的时间范围内,如果日志文件超过被使用的次数,则将该日志文件的描述符计入缓存,默认为10秒钟
valid:设置多长时间检查一次,看日志文件路径与文件名是否仍然存在,默认60秒
e.g:
open_log_file_cache max=1000 inactive=20s min_users=2 valid=1m;
日志分割:
vim cut_nginx_log.sh
#!/bin/bash
# This script run at 00:00
# The Nginx logs path.
logs_path="/data/logs"
mkdir -p ${logs_path}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}/weblogs.log ${logs_path}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/weblogs_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/nginx/nginx.pid`
crontab -e
00 00 * * * root /data/cut_nginx_log.sh



linux交流群:22346652。欢迎Linux爱好者加入,一起学习,一起进步。

你可能感兴趣的:(nginx,log,日志管理)