首页 > 技术文章 > Nginx 错误与访问日志

ruhuanxingyun 2019-07-23 14:56 原文

1. error_log

  A. error_log:记录自身运行故障或用户访问出错的信息,可以调试nginx服务;

       B. 格式及默认值: 关键字   日志文件   [错误日志级别]   (error_log   logs/error.log   error);

       C. 日志级别:debug   info   notice   warn   error   crit   alert   emerg,级别越高记录的信息越少,不要设置info等级较低的级别,否则会带来大量的磁盘I/O消耗;

       D. 标签段位置:main,http,server,location。  

 

2. access_log

  A. access_log:记录客户端的请求日志,可以获取用户ip和浏览器等信息;

       B. 默认值:access_log   logs/access_log   main,需要开启log_format,注意main是与log_format中main字段一致的;

       C. 关闭日志:access_log off;

       D. 标签段位置:http,server,location。

 

3. log_format

  A. log_format:日志的格式;

  B. 默认值:# log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 

                 '$status $body_bytes_sent "$http_referer" '  

                  '"$http_user_agent" $http_x_forwarded_for';

  C. 格式变量:

$remote_addr 访问网站的客户端地址
$remote_user 远程客户端用户名
$time_local 访问时间与时区
$request 用户的http请求起始行信息
$status http状态码,记录请求返回的状态码
$body_bytes_sent 服务器发送给客户端的响应body字节数
$http_referer 记录此次请求是从哪个链接访问过来的,可以根据参数进行防盗链设置
$http_user_agent 记录客户端访问信息
$http_x_forwarded_for 当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置
$request_time 指从接受用户请求数据到发送完回复数据的时间
$upstream_response_time 指从nginx向后端建立连接开始到接受完数据然后关闭连接为止的时间

       D. 标签段位置:http;

  E. $request_time与$upstream_response_time字段含义

    如果$request_time远大于$upstream_response_time值,则需要查看nginx模块配置或nginx与客户端的网络是否有性能瓶颈了;

    如果$request_time与$upstream_response_time值相差不大,则可能是nginx连接上游服务器比较慢,或者上游服务比较慢,需要进入下一步应用层排查;

 

4. 获取URL请求的参数

  A. 获取请求头参数:$http_HEADER,如:$http_host;

  B. 获取GET参数:$arg_PARAMETER,如:$arg_id;

  C. 获取cookie参数:$cookie_SESSIONID,SESSIONID代表cookie的名称;

 

推荐阅读