Nginx记录post请求数据

使用Nginx捕获POST请求详细信息
本文介绍如何在Nginx服务器上配置,以便记录并分析HTTP POST请求的数据,这对于调试和日志记录至关重要。

    

    经过两三天的奋斗,终于搞定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也是源码安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值