场景:
生产过程中,使用Nginx做反向代理转发请求到第三方网关时,因为请求出错,所以需要在nginx 打印请求的信息。
配置Nginx 日志格式
使用lua脚本需要nginx配置了lua,或者使用openresty取代nginx
http {
#默认值为off,忽略变量下划线
underscores_in_headers on;
#设置日志格式,采用$http_xxx的方式记录header name(xxx)的值
log_format upstreamlog '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $request_time req_body:"$request_body" authorization_for_digquant:"$http_authorization_for_digquant" Cookie:"$http_Cookie"';
access_log logs/access.log upstreamlog ;
#使用lua方式输出resp
set $resp_header "";
header_filter_by_lua '
local h = ngx.resp.get_headers()
for k, v in pairs(h) do
ngx.var.resp_header=ngx.var.resp_header..k..": "..v
end