当前位置 主页 > 服务器问题 > nginx问题汇总 >

nginx日志中添加请求的response日志(推荐)

栏目:nginx问题汇总 时间:2018-09-18 16:01

这篇文章主要介绍了nginx日志中添加请求的response日志,非常不错,具有参考借鉴价值,需要的朋友可以参考下

由于此功能在nginx内置的功能中没有,需要安装第三方模块ngx_lua,由于此模块需要Lua语言,所以需要安装相应的Lua语言包

1. 下载安装LuaJIT

# cd /usr/local/src# 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 LuaJITmake[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模块

# cd /usr/local/src# wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.6.tar.gz# tar -xzvf v0.8.6

3. 安装nginx

# cd /usr/local/src/# wget http://nginx.org/download/nginx-1.4.2.tar.gz# tar -xzvf nginx-1.4.2.tar.gz# cd nginx-1.4.2//先导入环境变量,告诉nginx去哪里找luajit# export LUAJIT_LIB=/usr/local/lib# export LUAJIT_INC=/usr/local/include/luajit-2.0# ./configure --prefix=/usr/local/nginx-1.4.2 --add-module=../lua-nginx-module-0.8.6# make -j2# make install

4.测试安装是否成功

# cd /usr/local/nginx-1.4.2/conf/# vi nginx.conf

lua指令方式

在server 中添加一个localtion

location /hello {   default_type 'text/plain';   content_by_lua 'ngx.say("hello, lua")';  }

然后启动nginx

# cd /usr/local/nginx-1.4.2/sbin# ./nginx

浏览器访问:

http://127.0.0.1/hello

显示:hello, lua

注意点:

1.注意每个模块的安装目录不能出现差错

2.如果之前通过apt-get方式安装了nginx,需要先删除nginx,因为此方式下载的软件无法编译

3.

到此说明第三方安装成功,

5.下面开始添加日志

http { log_format mylog 'response_body:$resp_body'; server {  #记录nginx请求返回值  lua_need_request_body on;  set $resp_body "";  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  ';       location / {   proxy_pass http://127.0.0.1:5000;   access_log /var/log/nginx/access.log mylog;   } }}

到此便成功添加response日志。

如果懂Lua语言的,可以对如下代码进行修改,来更加符合自己的要求。

  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  ';

日志输出时,会发现语言响应结果涉及到字符汉字的时候转为16进制导致无法识别。

部分响应日志如下:

缩小 缩小 缩小 缩小
IIS7整站下载工具 IIS7批量查询排名 IIS7远程桌面连接工具 iis7-iis网站批量管理 iis7批量替换工具 IIS7服务器专用下载工具 IIS7日志分析工具 IIS7批量PING,服务器批量添加网卡IP小工具 IIS7远程同步备份工具
IIS7网站监控 站群批量SEO查询 批量获取排名域名 批量关键词排名查询 模拟各种蜘蛛 批量友情链接监测 批量检测死链 搜索引擎大全 批量查询外链
批量查询网站标题 批量查询KeyWords 批量查询描述 批量查询网站IP 批量百度收录查询 批量查询百度日收录 批量查询百度周收录 批量查询百度月收录 批量查询360总收录 批量查询360日收录 批量查询网站年龄 批量查询360PC权重 批量查询爱站移动权重 批量查询站长移动权重 批量查询360移动权重 批量查询神马权重 批量查询谷歌PR 批量查询搜狗PR 批量查询百度反链 批量查询爱站首页反链 批量查询爱站内页反链 批量查询百度快照 批量查询搜狗快照 批量icp备案查询 批量网站ip地址查询 批量查询导出链接 批量查询百度V认证 批量查询百度安全 批量查询站长PC权重 批量查询爱站PC权重 批量查询搜狗总收录 站长资源大全 IIS7-cms大全 IIS7站群大全 IIS7虚拟空间大全 IIS7服务器大全 IIS7-VPS大全