浏览 940
nginx系列之一:nginx入门
nginx系列之二:配置文件解读
nginx系列之三:日志配置
nginx系列之四:web服务器
nginx系列之五: 负载均衡
nginx系列之六:cache服务
nginx系列之七:限流配置
nginx系列之八:使用upsync模块实现负载均衡
转自:在此感谢原博主的整理分享
access_log用来定义日志级别,日志位置。语法如下:
日志级别: debug > info > notice > warn > error > crit > alert > emerg
语法格式: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
access_log off;默认值 : access_log logs/access.log combined;
作用域 : http, server, location, if in location, limit_except
实例一:
语法格式: log_format name [escape=default|json] string …;
默认值 : log_format combined “…”;
作用域 : http
实例一:
使用open_log_file_cache来设置日志文件缓存(默认是off)。
语法格式: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache off;
默认值: open_log_file_cache off;
作用域: http, server, location
实例一
$remote_addr
,$http_x_forwarded_for
记录客户端IP地址$remote_user
记录客户端用户名称$request
记录请求的URL和HTTP协议(GET,POST,DEL,等)$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_iso8601 ISO8601
标准格式下的本地时间。$time_local
通用日志格式下的本地时间。
当你设置日志级别成 debug,如果你在调试一个在线的高流量网站的话,你的错误日志可能会记录每个请求的很多消息,这样会变得毫无意义。
在events{...}
中配置如下内容,可以使 Nginx 记录仅仅来自于你的 IP 的错误日志。
调试rewrite规则时,如果规则写错只会看见一个404页面,可以在配置文件中开启nginx rewrite日志,进行调试。
rewrite_log on;
开启后,它将发送所有的 rewrite 相关的日志信息到 error_log 文件中,使用 [notice] 级别。随后就可以在error_log 查看rewrite信息了。
配置以上配置后,/static/ 相关的日志会被单独记录在static-error.log文件中。
nginx日志共三个参数
proxy_set_header X-Forwarded-For :如果后端Web服务器上的程序需要获取用户IP,从该Header头获取。proxy_set_header X-Forwarded-For $remote_addr;
坑点:
使用$uri
可以在nginx对URL进行更改或重写,但是用于日志输出可以使用$request_uri
代替,如无特殊业务需求,完全可以替换。
日志中增加了压缩的信息。
增加upstream消耗的时间。
How to Configure Custom Access and Error Log Formats in Nginx
如何在Nginx中配置自定义访问和错误日志格式
按点赞数排序
按时间排序