Nginx日志管理
1.log_format指令用来设置日志的记录格式,语法如下:
log_format name format (format ....)
具体日志格式如下:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
$http_x_forwarded_for 和 $remote_user用于记录ip地址
$remote_user 用来记录远程客户端用户名称
$time_local 用来记录访问时间及地区
$request 用于记录请求的URL与HTTP协议
$status 用于记录请求的状态,例如状态为200,页面找不到时为404
$body_bytes_sent 用于记录发送给客户端的文件主体内容大小
$http_referer 用于记录是从哪个页面链接访问过来的
$http_user_agent 用于记录客户端浏览器的相关信息
开启日志打开缓存
2.为了提高包含变量的日志文件存放路径的性能,可以使用:
open_log_file_cache指令来设置,格式如下:
open_log_file_cache max=N [inactive=time][min_use=N][valid=time] |off 该指令默认是禁止的,等同于: open_log_file_cache off;
max :设置缓存中的最大文件描述数量
inactive: 设置一个时间,如果在设置的时间内没有使用此文件描述,则自动删除此描述
min_uses: 在参数inactive指定的时间范围内,如果日志文件超过使用次数,则该日志文件的描述计入缓存,默认为10秒钟
valid :设置多长时间检查一次,看日志文件路径与文件名是否仍然存在,默认60秒。
例子: open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m
Nginx 日志分割
#vim logs.sh
#!/bin/bash
#Nginx日志存放位置
logs_path="/usr/local/nginx/logs"
#将日志改名
mkdir -p $(logs_path)$(date -d "yesterday" +"%Y")/$(date -d "yesterday" + "%m")/
mv $(logs_path)access.log $(logs_path)$(date -d "yesterday" +"%Y" )/$(date -d "yesterday" + "%m" )/access_$(date -d "yesterday" + "%Y%m%d").log
#重启Nginx服务
service nginx reload
#创建计划任务
#crontab -l
01 01 * * * /bin/bash/logs.sh
阅读(4650) | 评论(0) | 转发(0) |