有时我们希望记录特定的请求头信息和特定的响应头信息,以便能够通过关联请求信息和响应头信息,来实现记录请求和响应的对应关系。这里通过逐步尝试和优化的方式进行尝试。具体包括将需要的请求头和响应头组织到一条日志记录,输出到单独的错误日志文件记录等的配置尝试。

1. 配置转发和日志记录

首先配置记录所有的请求头和响应头信息,记录到error_log指定的文件中。

error_log  logs/error.log  info;


log_format  main  '$remote_addr [$request_id] - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';


location /ngtest {
	proxy_pass http://127.0.0.1:8060;
	header_filter_by_lua '
		local reqheaders = ngx.req.get_headers()
		for key, val in pairs(reqheaders) do
			ngx.log(ngx.INFO, "request:", key, " : ", val)
		end

		-- 获取所有响应头
		local headers = ngx.resp.get_headers()
		-- 打印所有响应头
		for key, val in pairs(headers) do
			ngx.log(ngx.INFO, "response:", key, " : ", val)
		end
	';

}

这里的配置是将请求到本地的  http://127.0.0.1:8060 地址,并且记录请求头和响应头到日志文件,日志级别为INFO。

 3. postman

通过postman发送http请求。 

2. 日志记录

2024/10/16 15:59:59 [info] 139655#139655: *530 [lua] header_filter_by_lua(nginx.conf:69):4: request:authorization : NTLM TlRMTVNTUAADAAAAGAAYAEAAAADCAMIAWAAAAAAAAAAAAAAAHAAcABoBAAAWABYANgEAAAAAAAAAAAAABYIIAJi+0X/kdkl/ONUQGF7iAm1ii5/nECrNEufop988HOhSTFsJVFvxdXYBAQAAAAAAAKAG+Vfn19oBYouf5xAqzRIAAAAAAgAGAE8AVABQAAEAHgBXAEkATgAtAEkAUgBEAFMAVgBKAE8AMwBVAFQAVAAEAA4AbwB0AHAALgBjAG8AbQADAC4AVwBJAE4ALQBJAFIARABTAFYASgBPADMAVQBUAFQALgBvAHQAcAAuAGMAbwBtAAUADgBvAHQAcAAuAGMAbwBtAAcACAD4****** while reading response header from upstream, client: 111.206.85.18, server: localhost, request: "GET /ngtest HTTP/1.1", upstr

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部