Nginx记录post请求数据
2014-03-13 09:47
1361 查看
经过两三天的奋斗,终于搞定nginx log post数据的问题。首先nginx除了在proxy_pass或fastcgi_pass的Location中读取request_body之外,都不会读取post数据。所以此处必须借助NginxLua模块。参见http://www.cnblogs.com/meteorx/p/3188647.html,但是几经折腾还是不行。
location ^~ /offline { lua_need_request_body on; client_max_body_size 50k; client_body_buffer_size 50k; content_by_lua 'ngx.log(ngx.var.request_body)'; access_log /opt/data/log/m_offline/nginx_access.log pv_offline; return 204; }最后在http://chaoslawful.iteye.com/blog/730463中找到了答案:由于 NginX 默认在处理请求前不自动读取 request body,所以目前必须显式借助 form-input-nginx 模块才能从该变量得到请求体,否则该变量内容始终为空!
location ^~ /offline { lua_need_request_body on; set_form_input $data; client_max_body_size 50k; client_body_buffer_size 50k; content_by_lua 'ngx.log(data)'; access_log /opt/data/log/m_offline/nginx_access.log pv_offline; return 204; }
安装:
export LUAJIT_LIB=/root/nginx_model/lua/lib
exportLUAJIT_INC=/root/nginx_model/lua/include/luajit-2.0
./configure--prefix=/root/nginx_model/nginx --with-http_realip_module--with-http_stub_status_module --with-http_ssl_module --with-zlib=/root/nginx_model/tools/zlib/1.2.3--with-openssl=/root/nginx_model/tools/openssl --with-pcre=/root/nginx_model/tools/pcre-8.12--add-module=/root/nginx_model/tools/nginx-upload-progress-module-0.9.0--add-module=/root/nginx_model/tools/ngx_cache_purge-1.3--add-module=/root/nginx_model/tools/headers-more-nginx-module-0.25 --add-module=/root/nginx_model/tools/ngx_devel_kit-0.2.19--add-module=/root/nginx_model/tools/echo-nginx-module-0.49 --add-module=/root/nginx_model/tools/lua-nginx-module-0.9.5rc2--add-module=/root/nginx_model/tools/form-input-nginx-module-0.07
注意:--with-zlib是源码安装 --add-module也是源码安装
相关文章推荐
- fetch 请求数据 以及 node 后端 post请求获取不到数据的记录
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
- nginx记录post数据日志
- nginx把post的数据记录到日志中
- [nginx]如何在access log中记录post请求的参数
- nginx处理post请求之数据转发
- nginx接受post数据,并在日志里记录数据
- 让nginx日志支持记录POST请求
- 在nginx日志的access log中记录post请求的参数值
- 在nginx日志的access log中记录post请求的参数值
- 在nginx日志的access log中记录post请求的参数值
- nginx单独添加模块|日志记录post数据
- 解决nginx访问日志记录post数据
- 解决nginx在记录post数据时 中文字符转成16进制的问题【转载】
- nginx记录响应与POST请求日志
- 利用PostMan工具 ---post请求发送Json数据 踩坑记录
- nginx记录响应与POST请求日志
- 在nginx日志的access log中记录post请求的参数值
- nginx记录响应与POST请求日志
- nginx日志中记录post数据