nginx Access日志格式「建议收藏」

nginx Access日志格式「建议收藏」默认,access日志路径是./logs/access.log,默认的日志格式为combined格式;使用log_format指令可以自定义日志格式;语法log_formatname[escape=default|json|none]string…;escape参数(1.11.8)设置变量的字符转义,json或default风格;默认使用default风格;none关闭转义…

大家好,又见面了,我是你们的朋友全栈君。

默认,access日志路径是./logs/access.log, 默认的日志格式为combined格式;
使用log_format指令可以自定义日志格式;

语法

log_format name [escape=default|json|none] string ...;

escape参数(1.11.8)设置变量的字符转义,json或default风格;默认使用default风格;none关闭转义;

示例,自定义compression日志格式,并使用

http {
    log_format compression '$remote_addr - $remote_user [$time_local] '
                           '"$request" $status $body_bytes_sent '
                           '"$http_referer" "$http_user_agent" "$gzip_ratio"';

    server {
        gzip on;
        access_log /spool/logs/nginx-access.log compression;
        ...
    }
}

默认的combined格式为

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';

默认格式示例

192.168.1.186 - - [06/Aug/2018:09:57:51 +0800] "GET /Public/Css/plugins/morris/morris-0.4.3.min.css HTTP/1.1" 200 442 "http://www.example.com/index.php/Login/index.html" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"

常用变量

变量名 说明
$bytes_sent 发送给客户端的字节数
$connection 连接序列号
$connection_requests 当前通过连接发出的请求数
$msec 秒.毫秒;日志写入时间
$pipe 如果请求是管道线,则为”p”,否则为”.”
$request_length 请求长度(包括请求行,请求头和请求体)
$request_time 秒.毫秒;请求处理时长;从客户端读取第1个字节开始(请求),到最后1个字节发送给客户端为止(响应)
$status 响应状态码
$time_iso8601 ISO 8601标准格式的本地时间,如”2018-08-06T09:57:51+08:00″
$time_local 通用日志格式的本地时间,如”06/Aug/2018:09:57:51 +0800″

发送给客户端的变量,会有前辍”sent_http_”,如”$sent_http_content_range”

每个模块有内置变量可用于记录日志

http_core模块

变量名 说明
$arg_name name为请求行里的参数名
$args 请求行里的参数
$binary_remote_addr
$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小
$bytes_sent 发送给客户端的字节数
$connection 连接序列号
$connection_requests 当前通过连接发出的请求数
$content_length 请求头字段”Content-Length”
$content_type 请求头字段”Content-Type”
$cookie_name name为某个cookie的名字
$document_root
$document_uri 同$uri
$host 请求行里的host name或请求头字段”Host”或响应请求的服务器名
$hostname 主机名
$http_name name为请求头字段名小写;如user_agent,cookie等
$https
$is_args
$limit_rate
$msec 秒.毫秒;日志写入时间
$nginx_version nginx的版本
$pid 工作进程的pid
$pipe 如果请求是管道线,则为”p”,否则为”.”
$proxy_protocol_addr
$proxy_protocol_port
$query_string 同$args
$realpath_root
$remote_addr 客户端请求IP
$remote_port 客户端请求端口
$remote_user 客户端用户名称,要启用用户认证才会有值
$request 完整的原始请求行,如 “GET / HTTP/1.1”
$request_body 请求体
$request_body_file
$request_completion
$request_filename
$request_id
$request_length 请求长度(包括请求行,请求头和请求体)
$request_method 请求方法,如”GET”,“POST”
$request_time 秒.毫秒;请求处理时长;从客户端读取第1个字节开始(请求),到最后1个字节发送给客户端为止(响应)
$request_uri 完整的请求地址,如 “https://example.com/”
$scheme 请求模式,如”http”或”https”
$sent_http_name name为响应头字段名小写;
$sent_trailer_name
$server_addr 接受请求的服务器地址
$server_name 接受请求的服务器名
$server_port 接受请求的服务器端口
$server_protocol 请求协议,如”HTTP/1.0″
$status 响应状态码
$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space
$time_iso8601 ISO 8601标准格式的本地时间,如”2018-08-06T09:57:51+08:00″
$time_local 通用日志格式的本地时间,如”06/Aug/2018:09:57:51 +0800″
$uri 当前请求的URI;当内部转跳时,值会变

$http_name一般为

变量名 说明
$http_user_agent 请求头字段”User-Agent”;发出请求的设备
$http_referer 请求头字段”Referer”;发出请求时所在的链接

$sent_http_name一般为

变量名 说明
$sent_http_content_length 响应头的”Content-Length”;响应内容的长度

其他模块,参考官方文档;

参考:
https://nginx.org/en/docs/http/ngx_http_core_module.html#variables

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132719.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何进入现在较火热的大数据领域,学习路线是什么?

    如何进入现在较火热的大数据领域,学习路线是什么?

    2021年7月3日
    90
  • AutoreleasePool的那些事

    AutoreleasePool的那些事

    2021年6月6日
    131
  • Golang中Int32转换为int16丢失精度的具体过程

    Golang中Int32转换为int16丢失精度的具体过程为什么80%的码农都做不了架构师?>>>…

    2022年8月15日
    2
  • placeholder 与variable

    placeholder 与variableplaceholder,译为占位符,官方说法:”TensorFlowprovidesaplaceholderoperationthatmustbefedwithdataonexecution.”即必须在执行时feed值。placeholder实例通常用来为算法的实际输入值作占位符。例如,在MNIST例子中,定义输入和输出:x=tf.placeholder(tf…

    2022年7月15日
    15
  • 【算法】复变函数

    【算法】复变函数复变函数复数与复变函数复数复变函数导数积分级数留数保形映射解析函数对平面向量场的应用复数与复变函数复数复数的代数运算:复数四则运算的几何意义:①两个复数乘积的模等于它们模的乘积;两个复数乘积的幅角等于它们幅角的和②两个复数商的模等于它们模的商;两个复数商的幅角等于被除数与除数的幅角差③复数的加减:复数的幂乘和方根①幂乘②方根(这里w≠0,n≥2)的复数…

    2022年7月13日
    47
  • linux lefse分析,LEfSe分析,你真的懂了么

    linux lefse分析,LEfSe分析,你真的懂了么在微生物多样性分析中,LEfSe分析自从”出生“就倍受青睐,今天小昌宝宝就跟大家唠唠这个高频出镜的LEfSe分析,从LEfSe的定义、结果、原理、涉及到的检验四个方面进行解释。一LEfSe的定义LEfSe分析即LDAEffectSize分析,是一种用于发现和解释高维度数据生物标识(基因、通路和分类单元等)的分析工具,可以进行两个或多个分组的比较,它强调统计意义和生物相关性,能够在组与组之间寻…

    2022年6月13日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号