配置nginx及其抓取请求体相应体
1、设置nginx日志的输出格式
log_format main 'request:$request|request_body:$request_body|time_is:$time_iso8601|remote_addr:$remote_addr|remote_user:$remote_user|response_time:$upstream_response_time|request_time:$request_time|browser_type:$http_user_agent|response_body:$resp_body';
把该条信息加入到下图的位置中:
2、在http下面的upstream中配置应用服务器(可以配置多台以实现负载均衡)
3、在http下的server中配置nginx的端口以及映射应用服务器
set $resp_body "";
access_log /usr/local/nginx/logs/access.log main;
location / {
lua_need_request_body on;
body_filter_by_lua '
local resp_body = string.sub(ngx.arg[1], 1, 1000)
ngx.ctx.buffered = (ngx.ctx.buffered or"") .. resp_body
if ngx.arg[2] then
ngx.var.resp_body = ngx.ctx.buffered
end
';
root html;
index index.html index.htm;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://redApp;
}
4、重启nginx
./sbin/nginx -s reload