nginx日志格式分析和修改


Posted in Servers onApril 28, 2022

修改nginx日志打印格式

一. 打开终端,登录服务器并输入服务器密码

//ssh 用户名@服务器ip
ssh root@192.168.0.132

nginx日志格式分析和修改

二. 切换到nginx目录

cd /var/log/nginx/

三. 查看nginx日志

tail -f access.log

日志说明:

//默认的nginx标准日志格式
192.168.10.251 - - [24/Apr/2022:15:07:52 +0800] "POST /web-api/api/tableTemp/getAllDataCount HTTP/1.1"  200 173 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36" "127.0.0.1"
//默认的nginx标准日志格式说明
$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"
  • $remote_addr 客户端IP地址
  • $remote_user 客户端用户名称,一般为空
  • [$time_local] 访问时间
  • “$request” 记录请求HTTP的方式以及URL
  • $status 状态码
  • $body_bytes_sent 发送给客户端的文件大小
  • “$http_referer” 记录从哪个页面访问过来的
  • “$http_user_agent” 记录客户端相关信息

可以看到,默认的nginx标准日志是不包括接口响应时间的,如果想要看nginx接口响应时间,需要修改nginx配置

四. 修改nginx日志格式

在终端查看nginx状态及nginx配置文件位置

nginx -t

nginx日志格式分析和修改

打开nginx配置文件

vi /etc/nginx/nginx.conf

编辑nginx配置文件

//进入编辑状态
i

添加" r e q u e s t t i m e " , request_time", requestt​ime",request_time 单位秒,处理完请求需要花的时间

nginx日志格式分析和修改

输入完成之后按esc键退出编辑模式,在终端输入:wq保存并退出

:wq

重启nginx使nginx配置生效

nginx -s reload

重启之后再进去nginx目录下查看日志就带时间啦

nginx日志格式分析和修改

五. 其他日志参数说明

$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的响应时间

总结

到此这篇关于nginx日志格式分析以及修改的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
nginx搭建图片服务器的过程详解(root和alias的区别)
Mar 31 Servers
Nginx缓存设置案例详解
Sep 15 Servers
Nginx+Tomcat负载均衡集群的实现示例
Oct 24 Servers
使用 Apache 反向代理的设置技巧
Jan 18 Servers
nginx搭建NFS网络文件系统
Apr 14 Servers
Tomcat项目启动失败的原因和解决办法
Apr 20 Servers
KVM基础命令详解
Apr 30 Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 Servers
Nginx 配置 HTTPS的详细过程
May 30 Servers
Apache POI操作批量导入MySQL数据库
Jun 21 Servers
如何让你的Nginx支持分布式追踪详解
Jul 07 Servers
django项目、vue项目部署云服务器的详细过程
Jul 23 Servers
Window server 2012 R2 AD域的组策略相关设置
Apache Hudi 加速传统的批处理模式
Windows和Linux上部署Golang并运行程序
Apr 22 #Servers
阿里云ECS云服务器快照的概念以及如何使用
openstack云计算keystone组件工作介绍
Tomcat项目启动失败的原因和解决办法
Apr 20 #Servers
Tomcat执行startup.bat出现闪退的原因及解决办法
You might like
中国收音机工业发展史
2021/03/02 无线电
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
对numpy中的where方法嵌套使用详解
2018/10/31 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
《桃花心木》教学反思
2014/02/17 职场文书
运动会观后感
2015/06/09 职场文书
自书遗嘱范文
2015/08/07 职场文书
创业计划书之便利店
2019/09/05 职场文书