《Nginx - 变量》- log_format/核心变量
一:log_format
- 概述
- log_format 用于管理 Nginx 的详细信息,日志管理等信息,很多都是基于这个来实现。
- 可配置参数
$remote_addr 客户端地址
$remote_user 客户端用户名称
$time_local 访问时间和时区
$request 请求的URI和HTTP协议$http_host请求地址,即浏览器中你输入的地址(IP或域名)
$statusHTTP 请求状态
$upstream_statusupstream 状态
$body_bytes_sent 发送给客户端文件内容大小
$http_refererurl 跳转来源
$http_user_agent 用户终端浏览器等信息
$ssl_protocolSSL 协议版本
$ssl_cipher 交换数据中的算法
$upstream_addr 后台upstream的地址,即真正提供服务的主机地址
$request_time 整个请求的总时间
$upstream_response_time 请求过程中,upstream响应时间
二:核心模块内置变量
- 概述
- 变量贯穿整个 Nginx 请求过程,我们可以拿到我们需要的信息
- 变量
$uri:当前请求的uri,不带参数 $request_uri:请求的uri,带完整参数 $request:请求报文中的请求行 $host:http请求报文中host首部,如果请求报文中没有host首部则以处理此请求的主机的主机名代替 $hostname:nginx服务运行所在主机的主机名 $remote_addr:客户端IP $remote_port: 客户端port $remote_user:使用用户认证时客户端用户输入的用户名 $request_filename:用户请求报文中的URI经过本地root或alias转换后映射的本地的文件路径 $request_method:请求方法 $server_addr:服务器地址 $server_name: 服务器名称 $server_port:服务器端口 $server_protocol:服务器向客户端发送响应时的协议版本,如http/1.1,http/1.0 $scheme:在请求报文中使用的scheme,映射协议本身的协议如http或https $status:响应状态码 $http_HEADER:匹配请求报文中指定的HEADER,$http_host匹配请求报文中的host首部,
就是通用的咯,例如:$http_content_type匹配请求报文中的content-type首部 $sent_http_HEADER:匹配响应报文中指定的HERDER, $document_root:当前请求映射到的root配置
--
感谢今天Boos招聘上HR的宽容......
发错简历这种事以后不会在干了,哈哈
--
配置nginx的日志详细内容,都知道日志是很重要的东西,也是可以后去我们重要信息的地方。
之前我的一篇文章中学习了 nginx 的默认 log_format的作用。可以看下文。
--
但是我发现后来我还需要其他参数,于是在回来仔细学习 log_format 这个配置项。
假如我想检测一个API的响应时间,从入口文件打断点也是以一种办法,但是我们为什么不用 nginx 日志自带的一些配置来解决这个问题呢?
这里的问题就衍生了关于 nginx 的 log_format 的学习。
--
这里先列出默认的 log_format 的配置
--
具体的字段说明
说明
$remote_addr 客户端地址
$remote_user 客户端用户名称
$time_local 访问时间和时区
$request 请求的URI和HTTP协议$http_host请求地址,即浏览器中你输入的地址(IP或域名)
$statusHTTP 请求状态
$upstream_statusupstream 状态
$body_bytes_sent 发送给客户端文件内容大小
$http_refererurl 跳转来源
$http_user_agent 用户终端浏览器等信息
$ssl_protocolSSL 协议版本
$ssl_cipher 交换数据中的算法
$upstream_addr 后台upstream的地址,即真正提供服务的主机地址
$request_time 整个请求的总时间
$upstream_response_time 请求过程中,upstream响应时间
--
这里我想要的可能只是 $request_time 和 $upstream_responser_time 这两个参数,这里我们把它配在我的 log_format 的里面
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$upstream_response_time"';
--
重启我的 nginx server 服务
之前的 log
192.168.37.1 - - [08/Apr/2018:09:44:19 +0800] "GET /favicon.ico HTTP/1.1" 200 330 "http://192.168.37.37/"
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
--
配置后的请求
192.168.37.1 - - [08/Apr/2018:09:45:12 +0800] GET /favicon.ico HTTP/1.1 "200" 330 "http://192.168.37.37/"
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" "-" "0.000" "0.000"
--
已经成功记录上了我们需要的时间信息,其他的参数也是这样,在需要的时候进行配置。
--
目前的话只使用到了这两个配置,之后再学习或者工作中在遇到的话在回来补充。
《Nginx - 变量》- log_format/核心变量的更多相关文章
- 【转】nginx的模块变量(HTTP核心模块变量)
nginx的HTTP核心模块引入了大量的变量,可以在指定范围内使用这些变量的值,可以分为三类:一是客户请求头中发送的变量.二是服务器端响应头中的变量,第三是nginx产生的各种变量,我们可以使用$变量 ...
- Nginx基础篇(2)- Nginx基本配置文件和变量详解
Nginx基本配置文件和变量详解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx运行的用户 user nginx; # nginx进程数,建议设置为等于CPU总核心数. ...
- nginx常用内置变量
$args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为 ...
- SHELL (2) —— Shell变量的核心基础知识和实践
摘自:Oldboy Linux运维——SHELL编程实战 Shell变量:用一个固定的字符串(也可能是字符.数字等的组合)代替更多.更复杂的内容,该内容里可能还会包含变量.路径.字符串等其它的内容. ...
- Nginx入门--从核心配置与动静分离开始
写在前面 优化我们项目,服务器部署,不仅仅可以是分布式,Nginx一样可以通过动静分离,负载均衡来减轻我们服务器的压力.Nginx的知识链,学习周期相对比较长,博主也是刚刚入门,这篇就先从实现基础的动 ...
- nginx 日志log_format格式
官方文档: http://nginx.org/en/docs/http/ngx_http_log_module.html The ngx_http_log_module module writes r ...
- SpringCloud、Nginx高并发核心编程 【2020年11月新书 】
文章太长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典极品 : 三大本< Java 高并发 三部曲 > 面试 + 大厂 + 涨薪必备 疯狂创客圈 经 ...
- 深入理解PHP内核(五)变量及数据类型-变量的结构和类型
原文链接:http://www.orlion.ga/238/ 编程语言的类型可以分为强类型和弱类型两种,PHP是弱类型语言,但是C语言是强类型语言.在官网PHP实现内部,所有变量使用同一种数据结构(z ...
- Shell变量之自定义变量、环境变量
1:环境变量 环境变量可以帮我们达到很多功能-包括家目录的变换啊.提示字符的显示啊.运行文件搜寻的路径啊等等的那么,既然环境变量有那么多的功能,问一下,目前我的 shell 环境中, 有 ...
随机推荐
- linux-nohup后台运行
先说一下linux重定向: 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出. 在一般使用时,默认的是标准输出,既1.当我们需要特殊用途时,可以使用其他标 ...
- 【代码审计】iZhanCMS_v2.1 前台IndexController.php页面存在SQL注入 漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- JSON XSS
漏洞实例一: 1.在更新用户信息,修改联系电话,抓包绕过前端20个字符限制,Payload为 111<img src=1 onerror=alert(1)> 2.更新后,访问json 3. ...
- 【DVWA】Web漏洞实战之File Upload
File Upload File Upload,即文件上传漏洞,一般的上传漏洞可能是未验证上传后缀 或者是验证上传后缀被bypass 或者是上传的文件验证了上传后缀但是文件名不重命名. LOW 直接上 ...
- SpringBoot(十一)-- 动态数据源
SpringBoot中使用动态数据源可以实现分布式中的分库技术,比如查询用户 就在用户库中查询,查询订单 就在订单库中查询. 一.配置文件application.properties # 默认数据源 ...
- 如何删除一个CSDN上自己上传的资源
原文地址:http://www.xuebuyuan.com/1875216.html 昨天晚上进行测试,上传了一个压缩包和大家分享,测试完成后,为了不想给被测试的公司造成伤害,决定把上传的包删除,结果 ...
- MySQL 安装与配置
Linux 安装 MySQL Windows 安装 MySQL 如何连接 MySQL 如何修改 MySQL 密码 如何重置 MySQL 密码
- 高并发应对:淘宝CDN缓存服务器部署探秘
转自:http://server.chinabyte.com/6/12663506.shtml “好,时间到,开抢!”坐在电脑前早已等待多时的宋兰(化名)一看时间已到2011年11月11日零时,便迫不 ...
- flask操作mongo两种方式--常规
#manage.py #coding=utf-8 #Flask-Script是一个可以在flask应用外部编写脚本的扩展 #常用功能: #运行一个开发的服务器 #python shell中操作数据库看 ...
- 微信小程序 禁止ios页面下拉下滑滚动 出现空白的情况
项目需要做了一个图片拖动指定组件上删除,和排序的功能android测试正常, ios会出现拖动图片页面也跟着下滑的尴尬情况. 查文档下拉刷新配置默认是关闭的,后经查找文档发现在本页面page.json ...