nginx日志配置、nginx日志分割
时间:2014-09-29 12:46 来源:linux.it.net.cn 作者:it
在nginx中,日志的配置很简单,有各种好用的选项,拿来使用即可。
一,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
(责任编辑:IT)
在nginx中,日志的配置很简单,有各种好用的选项,拿来使用即可。
一,nginx日志管理
复制代码代码示例:
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地址
二,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 |