概述
Nginx日志主要有两种:access_log(访问日志)、error_log(错误日志)。
Nginx access_log 访问日志
Nginx中的access_log主要记录客户端访问Nginx的每一个请求,我们可以自定义它的格式。通过access_log可以得到用户的IP来源、跳转来源、使用的终端信息、某个URL访问量等相关信息。
log_format 指令用于定义日志的格式,语法为:
log_format name string;
其中,name表示格式名称,string表示定义的格式字符串,log_format有一个默认的无需设置的日志格式,缺省的日志格式为:
log_format combine '$remote_addr - $remote_user [$time_local] ' ' "$request" $status $body_bytes_sent ' ' "$http_referer" "$http_user_agent" ';
access_log 指令用来指定访问日志文件的存放路径、格式和缓存大小,其语法为:
access_log path [format_name [buffer=size | off]];
其中,path表示访问日志存放路径,format_name表示访问日志格式名称,buffer表示缓存大小,off表示关闭访问日志,如:
log_format myformat '$remote_addr $status $time_local'; access_log logs/access.log myformat;
注意事项:
- log_format 配置必须放在http配置节内,否则会警告;
- Nginx进程设置的用户和组,必须对日志路径有创建文件的权限,否则会报错;
常用日志字段介绍
- $remote_addr 、$http_x_forwarded_for :记录客户端IP地址
- $remote_user:记录客户端用户名称
- $request:记录请求的URL和HTTP协议
- $status:记录请求的状态
- $body_bytes_sent:发送给客户端的字节数,不包括响应头的大小
- $bytes_sent:发送给客户端的总字节数
- $connection:连接的序列号
- $connection_requests:当前通过一个连接获得的请求数量
- $msec:日志写入时间,单位为秒,精度为毫秒
- $http_referer:记录从哪个页面链接访问过来的
- $http_user_agent:记录客户端浏览器相关信息
- $request_length:请求的长度(含请求行、请求头、请求正文)
- $request_time:请求处理时间,单位为秒,精度为毫秒
- $time_local:记录访问的时间及时区信息
Nginx error_log 错误日志
error_log 主要记录客户端访问Nginx的出错信息,格式无法自定义。通过查看错误日志,我们可以看出某个服务或服务器的性能瓶颈等。
error_log 指令用来指定错误日志,语法为:
error_log path [level];
其中,path表示错误日志存放路径,level表示错误日志等级(debug、info、notice、warn、error、crit、alert、emerg)。从左到右,日志详细度逐级递减(debug最详细,emerg最简单),默认级别为error。
error_log 放在全局配置中,如:
如何关闭错误日志?
- Linux下关闭Nginx error_log
error_log /dev/null;
- Windows下关闭Nginx error_log
error_log nul;
本文暂时没有评论,来添加一个吧(●'◡'●)