「Nginx」03节-Nginx日志

概述

Nginx日志主要有两种:access_log(访问日志)、error_log(错误日志)。

「Nginx」03节-Nginx日志

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进程设置的用户和组,必须对日志路径有创建文件的权限,否则会报错;

常用日志字段介绍

  1. $remote_addr 、$http_x_forwarded_for :记录客户端IP地址
  2. $remote_user:记录客户端用户名称
  3. $request:记录请求的URL和HTTP协议
  4. $status:记录请求的状态
  5. $body_bytes_sent:发送给客户端的字节数,不包括响应头的大小
  6. $bytes_sent:发送给客户端的总字节数
  7. $connection:连接的序列号
  8. $connection_requests:当前通过一个连接获得的请求数量
  9. $msec:日志写入时间,单位为秒,精度为毫秒
  10. $http_referer:记录从哪个页面链接访问过来的
  11. $http_user_agent:记录客户端浏览器相关信息
  12. $request_length:请求的长度(含请求行、请求头、请求正文)
  13. $request_time:请求处理时间,单位为秒,精度为毫秒
  14. $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 放在全局配置中,如:

「Nginx」03节-Nginx日志

如何关闭错误日志?

  • Linux下关闭Nginx error_log
error_log /dev/null;
  • Windows下关闭Nginx error_log
error_log nul;


分享到:


相關文章: