首页 > 系统相关 >[nginx]日志中记录自定义请求头

[nginx]日志中记录自定义请求头

时间:2023-04-12 23:57:30浏览次数:42  
标签:http addr 自定义 request nginx version user remote 日志

前言

假设在请求中自定义了一个请求头,key为"version",参数值为“1.2.3”,需要在日志中捕获这个请求头。

nginx日志配置

只需要用变量http_version就能捕获到自定义的version请求头。示例:

log_format main '{"@timestamp": "$time_iso8601", '
			'"connection": "$connection", '
			'"version": "$http_version", '
			'"remote_addr": "$remote_addr", '
			'"remote_user": "$remote_user", '
			'"request_method": "$request_method", '
			'"request_uri": "$request_uri", '
			'"request_length": "$request_length", '
			'"server_protocol": "$server_protocol", '
			'"status": "$status", '
			'"body_bytes_sent": "$body_bytes_sent", '
			'"http_referer": "$http_referer", '
			'"http_user_agent": "$http_user_agent", '
			'"http_x_forwarded_for": "$http_x_forwarded_for", '
			'"upstream_addr": "$upstream_addr", '
			'"request_time": "$request_time"}';

测试

  1. 使用curl请求,指定请求头
curl -I -s http://127.0.0.1 -H 'version:123456' -o /dev/null
  1. 观察nginx请求日志是否记录到version值
{"@timestamp": "2023-04-12T15:14:13+00:00", "connection": "12", "version": "123456", "remote_addr": "172.1.7.1", "remote_user": "-", "request_method": "HEAD", "request_uri": "/", "request_length": "90", "server_protocol": "HTTP/1.1", "status": "200", "body_bytes_sent": "0", "http_referer": "-", "http_user_agent": "curl/7.74.0", "http_x_forwarded_for": "-", "upstream_addr": "-", "request_time": "0.000"}

标签:http,addr,自定义,request,nginx,version,user,remote,日志
From: https://www.cnblogs.com/XY-Heruo/p/17311909.html

相关文章

  • ansible中过滤器的介绍以及如何自定义过滤器
    一、过滤器介绍二、常用过滤器介绍2.1类型转换2.2数学运算2.3字典转换为列表2.4将字典中的所有key生成一个list2.5总结三、自定义过滤器四、总结之前介绍了关于如何通过shell,python,golang等语言实现自定义模块,可以参考这篇文章:今天主要是介绍下如何实现自定......
  • 使用shell,python,go来实现ansible的自定义模块
    一、自定义模块运行原理二、自定义模块实战2.1shell方式2.2python方式2.3golang方式三、测试验证3.1shell方式验证3.2python方式验证3.3golang方式验证ansible已经提供了非常多的模块,涵盖了系统、网络、数据库、容器、以及其他的方方面面的领域,几乎可以不用重复......
  • 脚本推荐-定时日志
    定时日志简介在设计时,常常忘记时间一些需要记录的东西往往由于没有养成习惯而忘记记录这样导致无法追溯设计的日志失去了分析个人能力和效率的手段为了强制养成写日志的习惯研发了一个定时日志的脚本利用win的定时器触发每小时弹出一个写日志的输入框并自动添加时......
  • 利用 ELK 处理 Percona 审计日志
    PerconaServer为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显著的提升。该版本提升了在高负载情况下的InnoDB的性能、为DBA提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为前提1、有强烈的审计需求。2、能允许10%-15%左右......
  • 利用 ELK 处理 Percona 审计日志
    PerconaServer为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显著的提升。该版本提升了在高负载情况下的InnoDB的性能、为DBA提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为前提1、有强烈的审计需求。2、能允许10%-15%左右......
  • 利用 ELK 处理 Percona 审计日志
    PerconaServer为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显著的提升。该版本提升了在高负载情况下的InnoDB的性能、为DBA提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为前提1、有强烈的审计需求。2、能允许10%-15%左右......
  • Mybatis-Plus如何自定义SQL注入器?
    有关Mybatis-Plus常用功能之前有做过一篇总结:MyBatisPlus常用功能总结!(附项目示例)一、什么是SQL注入器我们在使用Mybatis-Plus时,dao层都会去继承BaseMapper接口,这样就可以用BaseMapper接口所有的方法,BaseMapper中每一个方法其实就是一个SQL注入器在Mybatis-Plus的核心(core......
  • Golang一日一库之 日志库 zap
    简介在开发过程中会使用到日志库去记录错误的日志,尤其是golang中有无穷无尽的error如果不记录,当你的代码出错,就无从排错了。zap是开源的Go高性能日志库主要有以下特点:支持不同的日志级别能够打印基本信息等但不支持日志的分割但是可以使用lumberjack也是zap官方......
  • 细读JVM日志--01
    七种垃圾收集器具体每一种的详情见以下是垃圾回收日志中的一块:0.150:[GC(System.gc())[PSYoungGen:5161K->931K(74752K)]5161K->939K(245760K),0.0007762secs] [Times:user=0.00sys=0.00,real=0.00secs]0.151:[FullGC(System.gc())[PSYoungGen:931K->0K(74752K)]......
  • 提防坏人:Nginx 拒绝指定IP访问
    导读闲来无事,登陆服务器,发现有个IP不断的猜测路径、试图往服务器上传文件(木马)。于是查看了之前的日志,无奈鄙站被攻击者盯上了,不断的有不同的IP试图上传木马。看来坏人还是有的。由于不想让鄙站沦为肉鸡,所以就想写个简单的脚本,来阻止攻击者的IP访问。攻击者:195.154.216.1......