Nginx记录响应与POST请求日志
Eave
2016.08.10 23:28
生产环境中的某些api出现故障,但是问题无法重现,但是又很想解决掉问题以及我们新项目上线,需要跟踪请求与响应的信息,可以预先找到一些bug,减少大面积的损失。
响应日志需要lua的支持
Linux中可以安装OpenResty
在Nginx的log_format中添加$response_body变量
Nginx虚拟主机配置
server
{
listen 80;
server_name localhost;
index index.html index.htm index.php;
charset utf-8;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log debug_http;
root /var/www/vhosts/localhost;
set $response_body "";
lua_need_request_body on;
body_filter_by_lua '
local response_body = ngx.arg[1]
ngx.ctx.buffered = (ngx.ctx.buffered or "") .. response_body
if ngx.arg[2] then
ngx.var.response_body = ngx.ctx.buffered
end
';
}