nginx 日志默认格式如下:
$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"
默认情况下,是没输出整个后台网页/接口的处理时间,可以通过下面配置来实现打印出后端处理时间,从而辅助解决/排查一些问题。
需要注意上面的3点。配置完成后重启nginx
sudo service nginx restart
重启后查看日志:
其他参数参考:
$http_x_forwarded_for #客户端的真实ip通常web服务器放在反向代理的后面这样就不能获取到客户的IP地址了通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中可以增加x_forwarded_for信息用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。$remote_addr # 远程客户端的IP地址 $remote_user #远程客户端用户名称用于记录浏览者进行身份验证时提供的名字如果没有登录就是空白。 $time_local #访问的时间与时区比如18/Jul/2012:17:00:01 +0800时间信息最后的"+0800"表示服务器所处时区位于UTC之后的8小时。 $request_method #HTTP请求方法,通常为"GET"或"POST" $scheme #请求使用的Web协议,"http" 或 "https" $host #HTTP请求行的主机名>"HOST"请求头字段>符合请求的服务器名.请求中的主机头字段,如果请求中的主机头不可用,则为服务器处理请求的服务器名称 $request_uri #这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看$uri更改或重写 $uri #请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如"/foo/bar.html" $query_string #请求中的参数值 $server_protocol #服务器的HTTP版本,通常为 "HTTP/1.0" 或 "HTTP/1.1" $status #HTTP响应代码 $body_bytes_sent #传输给客户端的字节数,响应头不计算在内;这个变量和Apache的mod_log_config模块中的"%B"参数保持兼容 $http_referer #url跳转来源,用来记录从那个页面链接访问过来的 $http_user_agent #用户终端浏览器等信息 $request_time #处理客户端请求使用的时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。 $upstream_addr #真正提供服务的主机地址 $request_id #生产唯一ID方便查询问题 $upstream_response_time #请求过程中upstream的响应时间
https://www.leftso.com/article/nginx-custom-log-format.html