仓酷云

标题: 来讲讲:nginx日记设置指令详解 [打印本页]

作者: 第二个灵魂    时间: 2015-1-16 14:06
标题: 来讲讲:nginx日记设置指令详解
在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废(eg:源混乱等);
日记关于统计排错来讲十分有益的。本文总结了nginx日记相干的设置如access_log、log_format、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。
nginx有一个十分天真的日记纪录形式。每一个级其余设置能够有各自自力的会见日记。日记格局经由过程log_format命令来界说。ngx_http_log_module是用来界说哀求日记格局的。
1.access_log指令
语法:access_logpath[format[buffer=size[flush=time]]];
代码以下:

access_logpathformatgzip[=level][buffer=size][flush=time];
access_logsyslog:server=address[,parameter=value][format];
access_logoff;


默许值:access_loglogs/access.logcombined;
设置段:http,server,location,ifinlocation,limit_except
gzip紧缩品级。
buffer设置内存缓存区巨细。
flush保留在缓存区中的最长工夫。
不纪录日记:access_logoff;
利用默许combined格局纪录日记:access_loglogs/access.log或access_loglogs/access.logcombined;
2.log_format指令
语法:log_formatnamestring…;
默许值:log_formatcombined“…”;
设置段:http
name暗示格局称号,string暗示等义的格局。log_format有一个默许的无需设置的combined日记格局,相称于apache的combined日记格局,以下所示:
代码以下:

log_formatcombined$remote_addr-$remote_user[$time_local]
"$request"$status$body_bytes_sent
"$http_referer""$http_user_agent";


假如nginx位于负载平衡器,squid,nginx反向代办署理以后,web服务器没法间接猎取到客户端实在的IP地点了。$remote_addr猎取反向代办署理的IP地点。反向代办署理服务器在转发哀求的http头信息中,能够增添X-Forwarded-For信息,用来纪录客户端IP地点和客户端哀求的服务器地点。以下所示:
代码以下:

log_formatporxy$http_x_forwarded_for-$remote_user[$time_local]
"$request"$status$body_bytes_sent
"$http_referer""$http_user_agent";


日记格局同意包括的变量正文以下:
代码以下:

$remote_addr,$http_x_forwarded_for纪录客户端IP地点
$remote_user纪录客户端用户称号
$request纪录哀求的URL和HTTP协定
$status纪录哀求形态
$body_bytes_sent发送给客户真个字节数,不包含呼应头的巨细;该变量与Apache模块mod_log_config里的“%B”参数兼容。
$bytes_sent发送给客户真个总字节数。
$connection毗连的序列号。
$connection_requests以后经由过程一个毗连取得的哀求数目。
$msec日记写进工夫。单元为秒,精度是毫秒。
$pipe假如哀求是经由过程HTTP流水线(pipelined)发送,pipe值为“p”,不然为“.”。
$http_referer纪录从哪一个页面链接会见过去的
$http_user_agent纪录客户端扫瞄器相干信息
$request_length哀求的长度(包含哀求行,哀求头和哀求注释)。
$request_time哀求处置工夫,单元为秒,精度毫秒;从读进客户真个第一个字节入手下手,直到把最初一个字符发送给客户端落后行日记写进为止。
$time_iso8601ISO8601尺度格局下的当地工夫。
$time_local通用日记格局下的当地工夫。


发送给客户真个呼应头具有“sent_http_”前缀。好比$sent_http_content_range。
实比方下:
代码以下:

http{
log_formatmain$remote_addr-$remote_user[$time_local]"$request"
"$status"$body_bytes_sent"$http_referer"
"$http_user_agent""$http_x_forwarded_for"
"$gzip_ratio"$request_time$bytes_sent$request_length;
log_formatsrcache_log$remote_addr-$remote_user[$time_local]"$request"
"$status"$body_bytes_sent$request_time$bytes_sent$request_length
[$upstream_response_time][$srcache_fetch_status][$srcache_store_status][$srcache_expire];
open_log_file_cachemax=1000inactive=60s;
server{
server_name~^(www.)?(.+)$;
access_loglogs/$2-access.logmain;
error_loglogs/$2-error.log;
location/srcache{
access_loglogs/access-srcache.logsrcache_log;
}
}
}


3.open_log_file_cache指令
语法:open_log_file_cachemax=N[inactive=time][min_uses=N][valid=time];
open_log_file_cacheoff;
默许值:open_log_file_cacheoff;
设置段:http,server,location
关于每条日记纪录,都将是先翻开文件,再写进日记,然后封闭。可使用open_log_file_cache来设置日记文件缓存(默许是off),格局以下:
参数正文以下:
max:设置缓存中的最年夜文件形貌符数目,假如缓存被占满,接纳LRU算法将形貌符封闭。
inactive:设置存活工夫,默许是10s
min_uses:设置在inactive工夫段内,日记文件起码利用几次后,该日记文件形貌符记进缓存中,默许是1次
valid:设置反省频次,默许60s
off:禁用缓存
实比方下:
代码以下:
open_log_file_cachemax=1000inactive=20svalid=1mmin_uses=2;

4.log_not_found指令
语法:log_not_foundon|off;
默许值:log_not_foundon;
设置段:http,server,location
是不是在error_log中纪录不存在的毛病。默许是。
5.log_subrequest指令
语法:log_subrequeston|off;
默许值:log_subrequestoff;
设置段:http,server,location
是不是在access_log中纪录子哀求的会见日记。默许不纪录。
6.rewrite_log指令
由ngx_http_rewrite_module模块供应的。用来纪录重写日记的。关于调试重写划定规矩倡议开启。Nginx重写划定规矩指南
语法:rewrite_logon|off;
默许值:rewrite_logoff;
设置段:http,server,location,if
启用时将在errorlog中纪录notice级其余重写日记。
7.error_log指令
语法:error_logfile|stderr|syslog:server=address[,parameter=value][debug|info|notice|warn|error|crit|alert|emerg];
默许值:error_loglogs/error.logerror;
设置段:main,http,server,location
设置毛病日记。

文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln
作者: 再见西城    时间: 2015-1-18 11:55
熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:
作者: 第二个灵魂    时间: 2015-1-23 13:19
我想即使Linux高手也很难快速准确精练的回答你。
作者: 只想知道    时间: 2015-1-31 18:09
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
作者: 透明    时间: 2015-2-6 21:58
就这样,我们一边上OS理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步地布置任务
作者: 老尸    时间: 2015-2-19 00:35
请问谁有Linux的学习心得的吗?简单的说说?
作者: 山那边是海    时间: 2015-3-13 01:09
笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
作者: 金色的骷髅    时间: 2015-3-20 09:18
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2