nginx直接打印输出_Nginx 日志打印POST数据

在工作中,开发希望能从Nginx日志中获取POST的数据信息,先记录下来

在日志格式后面加上 $request_body 配置信息

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for" $request_body';

在server中添加打印日志的操作

access_log logs/access.log main;

本以为问题解决了,开发有要求在日志中添加上 服务器响应返回的数据

目前的 nginx 是不支持输出 response 报文体的 使用body_filter_by_lua来分配请求报文体给一个nginx变量。下面是一个示例

1:下载安装LuaJIT

# wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz

# tar -xzvf LuaJIT-2.0.2.tar.gz

# cd LuaJIT-2.0.2

# make

出现如下内容表示编译成功

OK Successfully built LuaJIT

make[1]: Leaving directory `/usr/local/src/LuaJIT-2.0.2/src'

==== Successfully built LuaJIT 2.0.2 ====

# make install

出现如下内容,表示安装成功

==== Successfully installed LuaJIT 2.0.2 to /usr/local ====

2:下载准备nginx lua模块

wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.6.tar.gz

tar -xzvf lua-nginx-module-0.8.6.tar.gz

mv lua-nginx-module-0.8.6 /usr/local/src/lua-nginx-module-0.8.6

3:安装nginx

tar zxf nginx-1.16.1.tar.gz

cd nginx-1.16.1

//先导入环境变量,告诉nginx去哪里找luajit

export LUAJIT_LIB=/usr/local/lib

export LUAJIT_INC=/usr/local/include/luajit-2.0

./configure --prefix=/usr/local/nginx --add-module=/usr/loc

你可能感兴趣的:(nginx直接打印输出)