我有一个反向代理,我想用它来记录请求主体,目前看起来
log_format my_tracking'“$request”“$http_soapaction”“$http_content_type”“$request_body”';
它记录了所有内容,现在我想记录这些请求的响应主体,结果却困难得多。我一直在尝试使用 Lua 模块(我已将其编译到 Nginx 1.3.14 中),但我找不到任何有关如何执行此操作的示例,我确实在扩展我的技术能力,因此任何帮助都将不胜感激。
谢谢,将编辑回复引用报告
答案1
确实,在 body_filter 中设置变量然后将其传递到日志文件不起作用。我检查了这个配置,它起作用了,但不幸的是 nginx 将数据记录到 error.log 中:
error_log logs/error.log info;
location / {
set $myresponse; #we must declare it first, we cannot create vars in lua
proxy_pass http://mybackendserver;
body_filter_by_lua 'ngx.var.myresponse = ngx.arg[1]
ngx.log(ngx.INFO,ngx.var.myresponse)
';
}
}
ps. 也想知道如何从 lua 模块登录以访问日志。