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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C++教程(最全)「建议收藏」

    C++教程(最全)「建议收藏」C++简介

  • 从贝叶斯方法谈到贝叶斯网络语言_深度贝叶斯网络

    从贝叶斯方法谈到贝叶斯网络语言_深度贝叶斯网络从贝叶斯方法谈到贝叶斯网络0引言事实上,介绍贝叶斯定理、贝叶斯方法、贝叶斯推断的资料、书籍不少,比如《数理统计学简史》,以及《统计决策论及贝叶斯分析JamesO.Berger著》等等,然介绍贝叶斯网络的中文资料则非常少,中文书籍总共也没几本,有的多是英文资料,但初学者一上来就扔给他一堆英文论文,因无基础和语言的障碍而读得异常吃力导致无法继续读下去则是非…

    2022年10月19日
  • pycharm中python版本_如何在pycharm中切换python版本「建议收藏」

    pycharm中python版本_如何在pycharm中切换python版本「建议收藏」由于历史原因,现在的python主要流行的是2.5左右的版本和3.0之后的版本。在实际中,我们也会选择不同的版本,或者随时切换版本。接下来我会介绍如何再pycharm中切换python版本工具/原料pycharm软件python3.3和python2.7两个版本,并且安装好方法/步骤1打开软件会看到,这里有明显的红色提示错误。原因是当前使用的是python3.3,当执行print的时候,打印的文字…

  • linux14:(0.7k)scp命令,fstab文件

    linux14:(0.7k)scp命令,fstab文件scp命令scp 可以在 2个 linux 主机间复制传输文件;命令基本格式:scp 选项 源路径 目标路径选项-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .-C 使能压缩选项 .-P 选择端口 . 注意 -p 已经被 rcp 使用 .-4 强行使用 IPV4 地址 .-6 强行使用 IPV6 地址 .copy 本地的档案到远程的机器上scp /etc/lilo.conf k@net67.ee.oit.edu

  • freehosting申请空间和ssh -D设置

    freehosting申请空间和ssh -D设置前段时间申请了website.org的免费空间,可是有广告.在这时向大家推荐freehosting.com.Freehosting.com是一家创建于1996年的美国网站,国内在2006年有介绍过它的免费PHP空间,不过没能找到演示,目前免费空间的主机放在德国,提供1G存储空间,月流量为10G,采用CPanel控制管理面板(有简体中文版),支持FTP和Web在线文件管理(可在线解压缩),…

  • 图像gamma校正

    图像gamma校正                  图像gamma校正1.为什么要进行Gamma校正 (Gamma Correction,伽玛校正):所谓伽玛校正就是对图像的伽玛曲线进行编辑,以对图像进行非线性色调编辑的方法,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果。计算机绘图领域惯以此屏幕输出电压与对应亮度的转换关系曲线,称为伽玛曲线…

发表回复

您的电子邮箱地址不会被公开。

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