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

news/2025/1/11 14:53:02/

如何自定义日志格式,就需要修改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.ppmy.cn/news/907842.html

相关文章

YT8531

YT8531 品牌 MOTORCOMM/裕太微 封装 QFN48 批号 21 数量 5000 RoHS 是 产品种类 电子元器件 比较小工作温度 -20C 比较大工作温度 130C 比较小电源电压 1V 比较大电源电压 6.5V 长度 5.3mm 宽度 7.8mm 高度 1.6mm 型号 YT8531SH

三端稳压器W7805稳压性能的研究

一,题目 W7805输出电压,电压调整率,电流调整率以及输出纹波电压,电压的研究。 二,仿真电路 电路如图所示,集成稳压芯片采用LM 7805 CT 三,仿真内容 (1)测量图a&#…

8155/8255/8295参数对比

8255与8295同为高通第四台座舱芯片,大体上各项参数都差不多,某些参数8255更强,而有的参数则是8295更强一些。从价格上看,似乎8255比8295更有优势一些,未来有可能会成为新的主流座舱芯片(毕竟8295还是比较贵…

基于Godot的康威的生命游戏

在_ready()函数中创建了一个“滑翔机”,坐标系以左上角为原点 创建了一个定时器,每隔0.1秒调用一次_on_timer_timeout(),所以更新代码也在这 extends Nodeclass Grid:const W : int 10const H : int 10const ALIVE : int 1const DEAD : i…

uniapp中H5定位功能实现

1.要实现该功能 必须使用vue-jsonp进行跨域 JSONP是一种跨域数据请求的解决方案,它使用script元素来请求数据,再利用回调函数将数据传回页面。 Vue框架提供了对JSONP的支持,可以方便地在Vue应用中使用JSONP获取跨域数据。下面我们来了解一下…

Python Link01

一:电脑的基础知识: 1:计算机结构: 2:电脑内部的基础设备; ① CPU:中央处理器—分类:Pertium(奔腾);Athlon(速龙);Celeron…

人体姿态估计动作识别调研报告

人体姿态估计&动作识别 视频演示 Refs: https://www.zhihu.com/zvideo/1227562268420235264 姿态估计与行为识别(行为检测、行为分类)的区别 Refs:姿态估计与行为识别(行为检测、行为分类)的区别 姿态估计 定…

Java代理设计模式

Java代理设计模式 定义 Java代理模式(Proxy Pattern)是一种常用的设计模式,它为其他对象提供一种代理以控制对这个对象的访问。简单来说,我们使用代理对象来代替对真实对象的访问,这样就可以在不修改原目标对象的前提…