微服务系列文章 之 nginx日志格式分析以及修改

news2024/9/23 11:15:38

如何自定义日志格式,就需要修改nginx日志打印格式

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

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

 

二. 切换到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配置文件

vi /etc/nginx/nginx.conf

编辑nginx配置文件

//进入编辑状态

i

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

 

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

:wq

重启nginx使nginx配置生效

nginx -s reload

重启之后再进去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的响应时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/758925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV for Python 入坑第二天 :图片处理(1)

上一篇博客我们简单了解了一下如何打开图片、保存图片、创建窗口等等。那么今天我们就来尝试一下完成OpenCV基础操作——图像的处理 文章目录 什么是图像处理图像的展示方法灰度图像介绍彩色图像介绍 图像的像素修改OpenCV的图像存储方式NumPy创建图像彩色图片存储 小结 什么是…

用WinDBG调试DMP文件

把对应工程的pdb文件,放到C盘下的一个文件夹,例如 C:\mysymbols 打开WinDBG,选择File -> Symbol File Path , 输入C:\mysymbols\;SRV*C:\symbols*http://msdl.microsoft.com/download/symbols,然后OK (这可以使W…

微服务系列文章 之 Nginx状态监控日志分析详解

1、Nginx状态监控 Nginx提供了一个内置的状态信息监控页面可用于监控Nginx的整体访问情况,这个功能由ngx_http_stub_status_module模块进行实现。 使用nginx -V 2>&1 | grep -o with-http_stub_status_module命令检测当前Nginx是否有status功能&#xff0c…

德哥说库-MySQL数据类型

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜&#x1f61…

【Mac使用笔记】之 Homebrew

Homebrew更新: brew update && brew upgrade 当出现错误: fatal: couldnt find remote ref refs/heads/master 执行: brew tap --repair Ruby安装: 1、查看当前Homebrew版本: brew --version2、查看当前…

在Console无图形界面程序使用SetTimer

UpdateData(true);将控件的值赋值给成员变量 UpdateData(false);将成员变量的值赋值给控件 UpdateData;用来刷新当前对话框 也就是说:当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该…

Android手写占位式插件化框架之apk解析原理系统源码分析

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 前言: 上一篇文章 Android手写占位式插件化框架之Activity通信、Service通…

服务器与客户端数据交换(Rest API)

服务器端 Rest API 输出普通对象 AjaxResponse jsonObj AjaxResponse.success(body);log.info("{} json:{}",RestResponseBodyAdvice.class,jsonObj.toString());return jsonObj;AjaxResponse(successtrue, code200, messageThis is normal, contentUserVO(id1, …

模拟实现strcpy

隔了一段时间没有更新博客了,今天给大家带来的是:如何用C语言模拟实现 strcpy 函数 赶时间的朋友建议直接复制走代码,我会在下面详细剖析代码 引言 在计算机编程中,字符串处理是一个非常重要的部分。strcpy函数是C语言中用于复制…

16 | 视图:如何实现服务和数据在微服务各层的协作?

目录 服务的协作 1. 服务的类型 2. 服务的调用 微服务内跨层 微服务之间的服务调用 领域事件驱动 3. 服务的封装与组合 基础层 领域层 应用层 用户接口层 4. 两种分层架构的服务依赖关系 松散分层架构的服务依赖 严格分层架构的服务依赖 数据对象视图 基础层 领…

electron-updater 报错 Cannot find module ‘debug‘

使用 electron-updater 更新 electron 应用,打完包安装启动出现这种报错:Cannot find module debug,Cannot find module builder-util-runtime。 项目依赖 {"electron": "^24.4.1","electron-builder": "…

【机器学习】了解 AUC - ROC 曲线

一、说明 在机器学习中,性能测量是一项基本任务。因此,当涉及到分类问题时,我们可以依靠AUC - ROC曲线。当我们需要检查或可视化多类分类问题的性能时,我们使用AUC(曲线下面积)ROC(接收器工作特…

第68篇:javafx编写扫描器UI界面的线程死锁问题及坑点总结

Part1 前言 大家好,我是ABC_123。之前编写工具的图形界面都是用swing框架来实现,但是swing框架已经10几年没有更新了,很多控件使用起来特别麻烦,然后界面美工需要花费很大精力。为了跟上知识更新的节奏,ABC_123最近花…

语言模型的自洽性思维链推理技术

论文标题:Self-Consistency Improves Chain of Thought Reasoning in Language Models 论文链接:https://arxiv.org/abs/2203.11171 论文来源:ICLR 2023 一、概述 尽管语言模型在一系列NLP任务中展现出了显著的成功,但它们在推理能…

django使用channels实现webSocket启动失败

问题描述 使用channels启动ASGI结果却是普通启动,如下: Watching for file changes with StatReloader Performing system checks...System check identified no issues (0 silenced). July 15, 2023 - 18:23:49 Django version 4.2, using settings s…

chatGPT 和AlphaGo下围棋,谁赢?垂域大模型有戏么?

这边来的少,但发个文章通报下近况,长期做AI产研、投融资工作后,后续主要在企业数字化与大模型结合的方向上,后续进展还是请关注:琢磨事。 上一篇提到最终大模型的格局很可能是有一个偏通用大模型,比如chatG…

Linux系统编程——文件(ioctl 函数)

文章目录 概念用户空间 ioctl驱动程序 ioctlioctl 在用户与驱动之间的协议——命令码实例分析ioctl-test.hioctl-test-driver.cioctl-test.c 概念 ioctl 是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一…

GitOps自问自答

GitOps自提出以来受到很多关注,被认为是云原生最佳实践之一。这篇文章回答了关于GitOps的常见问题,帮助感兴趣的相关人员更好理解这一实践。原文: GitOps[1] 自从Weaveworks在2017年提出GitOps以来,已经在Twitter和KubeCon上引发了不少争议。…

Qt实现思维导图功能6『鹰眼视图』

前文链接:Qt实现思维导图功能5『纵向分布模式』 百度网盘体验地址: 链接:https://pan.baidu.com/s/1xotlkSPfG7E_37y_XPfDng 提取码:5li7效果图 1、动态演示效果: 思维导图-鹰眼视图 2、静态展示图片: 新…

Econ3107-econ5116-小组作业知识点精讲

对本文有疑问可以加微信 Tutor_0914联系。也可以访问我的个人辅导网站 : tutoryou 基本概念 option期权 期权(Option),是一种选择权,指是一种能在未来某特定时间以特定价格买入或卖出一定数量的某种特定商品的权利…