日志对付统计排错来说很是有利的。本文总结了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指令
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
语法: access_log path [format [buffer=size [flush=time]]];access_log path format gzip[=level] [buffer=size] [flush=time];access_log syslog:server=address[,parameter=value] [format];access_log off;默认值: access_log logs/access.log combined;设置段: http, server, location, if in location, limit_exceptgzip压缩品级。buffer配置内存缓存区巨细。flush生存在缓存区中的最长时间。不记录日志:access_log off;利用默认combined名目记录日志:access_log logs/access.log 或 access_loglogs/access.log combined;
2. log_format指令
语法: log_format name string …;默认值: log_format combined “…”;设置段: 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地点和客户端请求的处事器地点。PS: 获取用户真实IP拜见http://www.ttlsa.com/html/2235.html如下所示:
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通用日志名目下的当地时间。
[warning]发送给客户端的响应头拥有“sent_http_”前缀。好比$sent_http_content_range。[/warning]
实譬喻下:
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指令