百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

nginx打印请求头日志方法-openresty

off999 2025-02-16 22:25 27 浏览 0 评论

一、前言

之前想用nginx打印收到的请求的请求头,但是只找到打印请求体的,没有打印请求头的,感觉原版nginx不支持。

建议如果想打印请求头,先换成openresty

(本人安装的是openresty-1.21.4.1.tar.gz版本的)

网上有些文章的配置,本人试了后发现不行,各种报错,不知道为什么;

这个的配置可以,在此记录下

二、openresty打印请求头方法

1.安装好openresty

2.找到nginx配置文件nginx.conf,增加一种日志打印格式,可以写在http {里:


http {
    include       mime.types;
    default_type  application/octet-stream;

    #这个是默认日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #这个是自定义的打印请求头的日志格式
        log_format accesslog_headers  '$time_iso8601'
                        '\t$request_time'
                        '\t$status'
                        '\t$remote_addr'
                        '\t$http_x_forwarded_for'
                        '\t$host'
                        '\t$server_addr'
                        '\t$request_method'
                        '\t$uri' #cs-uri-stem
                        '\t$args' #cs-uri-query
                        '\t"$http_user_agent"'
                        '\t"$http_referer"'
                        '\t$bytes_sent'
                        '\t$request_length'
                        '\t$upstream_addr'
                        '\t$upstream_status'
                        '\t$upstream_response_time'
                        '\t$request_uri'
                        '\t$request_headers'; #设置这个变量,后面赋值

    #这里配置后全局的日志都会用默认日志格式main,日志打印位置是logs文件夹里的access.log文件
    access_log  logs/access.log  main;

3.继续修改nginx.conf,可以在想打印request_header的location里加,也可以加在全局。

以下是在某个location里加的方法样例:

location /my/header/api/ {
        #这个是增加的,使用打印请求头的日志格式accesslog_headers,日志打印位置是logs/access_headers.log
        access_log  logs/access_headers.log  accesslog_headers;
        
        #给request_headers变量赋值,使用lua获取到请求头
        set_by_lua $request_headers 'local h = ngx.req.get_headers()
                                local request_headers_all = ""
                                for k, v in pairs(h) do
                                    request_headers_all = request_headers_all .. ""..k..": "..v..";"
                                end
                                return request_headers_all';

这样配置可以指定访问某个location才打印header,并且不影响main格式的日志,比较方便。

4.保存配置文件,重启nginx。

5.当有请求访问/my/header/api/时,就会打印日志,本人的日志文件路径在
/home/myuser/openresty/nginx/logs /access_headers.log

三、备注

1.如果想打印请求体,直接日志格式log_format里加默认的$request_body即可(不用自己赋值),然后就会打印出来。(再次注意原版nginx没有$request_header,所以才换成openresty自己用lua赋值)

2.如果想打印响应头和响应体(例如后台服务器返回的),也可以自己日志格式里加2个变量,后续用lua赋值,然后打印。

相关推荐

免费恢复微信好友软件(免费恢复微信好友软件哪个好用)

1.不存在免费的微信找回删除好友软件。2.因为微信的好友删除是一种数据操作,需要访问微信服务器上的数据,而微信官方并没有提供找回删除好友的功能,所以任何软件都无法实现这个功能。此外,使用未知来源的...

台式电脑突然断电后无法开机

首先,突然断电导致电脑不能正常开机,并不一定是系统故障,根据以下的方法进行排除。1、在断开电源的前提条件下,打开主机箱侧盖将内存条取下来,更换内存安装插槽的位置。2、找到主板电池,并且将主板电池取下来...

网易邮箱163登录下载(网易邮箱163登录下载不了)

手机163的登录入口163邮箱官网入口是;https://smart.mail.163.com/login.htm网易邮箱注册方法;1在浏览器搜索“网易邮箱”。2进入网易邮箱官网https://sma...

免费ppt模板下载网站(免费ppt模板下载网站名)
  • 免费ppt模板下载网站(免费ppt模板下载网站名)
  • 免费ppt模板下载网站(免费ppt模板下载网站名)
  • 免费ppt模板下载网站(免费ppt模板下载网站名)
  • 免费ppt模板下载网站(免费ppt模板下载网站名)
hotmail邮箱怎么样

微软关闭的是中国大陆地区以外的WindowsLiveMessenger客户端服务和邮箱服务完全无关.所以不止中国大陆,全球的hotmail都可以用的.hotmail邮箱目前还是可以用的,不过...

手机怎么连路由器上网设置(用手机连接路由器设置)

手机无线路由器的桥接方法如下1、在确保手机已连接到当前WIFI网络的情况下,打开手机设置。然后在设置页面中,点击“移动网络”进入。2、在移动网络设置界面,点击“移动网络共享”进入。3、在移动网络共享设...

nvidia怎么下载(nvidia怎么下载旧版本驱动)
  • nvidia怎么下载(nvidia怎么下载旧版本驱动)
  • nvidia怎么下载(nvidia怎么下载旧版本驱动)
  • nvidia怎么下载(nvidia怎么下载旧版本驱动)
  • nvidia怎么下载(nvidia怎么下载旧版本驱动)
截图电脑(截图电脑怎么操作)

方法一:系统自带截图具体操作:同时按下电脑的自带截图键【Windows+shift+S】,可以选择其中一种方式来截取图片:截屏有矩形截屏、任意形状截屏、窗口截屏和全屏截图。?方法二:QQ截图具体操作:...

显卡参数对比(rtx50系列显卡参数对比)

在规格方面:显卡容量大(大容量显卡在大型游戏中比较有用);显卡速度快(比如DDR5比DDR3快);核心频率高(比如4830在500MHZ左右,4870能到700多)这是显卡很重要的参数;还有流处理器...

n卡驱动下载官网(n卡驱动官网网址)

1可能下载不了。2可能的原因是网速不稳定或者网络连接不畅,还有就是可能是服务器维护或者更新的原因。3如果下载不了,可以尝试换一个时间或者尝试使用其他的下载方式或者下载其他版本的驱动。另外,也可以...

android模拟器下载安装(安卓模拟器软件下载)

电脑版安卓模拟器可以通过网上下载并安装。首先选择一个安卓模拟器,比如NoxPlayer、BlueStacks、LDPlayer等,然后在官网或其他可靠的下载网站下载对应的安装包。下载完成后,双击安装包...

win7明明是管理员却没有权限

答:win7没有管理员权限的解决方法。1.为Windows7的右键菜单添加取得所有权的菜单:具体实现的方法不难,将以下内容另存为文本文件; 2.然后修改该文件的扩展名为.reg,双击导...

电脑c盘格式化了怎么装系统(电脑c盘格式化后还能用吗)

C盘只有格式化才能中心装系统吗?不是的。C盘格式化是为了让C盘更清洁,这样装了的系统比较纯净的。没有系统来及,用起来更是的速度快。格式化(format)是指对磁盘或磁盘中的分区(partition)进...

win10开机慢怎么设置(win 10开机太慢)
  • win10开机慢怎么设置(win 10开机太慢)
  • win10开机慢怎么设置(win 10开机太慢)
  • win10开机慢怎么设置(win 10开机太慢)
  • win10开机慢怎么设置(win 10开机太慢)
手机路由器管理(手机路由器管理界面进不去是什么原因)
  • 手机路由器管理(手机路由器管理界面进不去是什么原因)
  • 手机路由器管理(手机路由器管理界面进不去是什么原因)
  • 手机路由器管理(手机路由器管理界面进不去是什么原因)
  • 手机路由器管理(手机路由器管理界面进不去是什么原因)

取消回复欢迎 发表评论: