因為nginx作為web服務器時,會代理后端的一些接口,這時訪問日志中只能記錄訪問接口的status碼,也就是說,只能獲得200、404 這些的值
那么如何獲得接口返回的response值呢?
下面開始
1、需要在nginx中安裝lua插件
下載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
自己檢查沒有出現ERROR,就是證明安裝成功了,我make沒有出錯,如果出錯請自行谷歌一下。
2、安裝nginx
# cd /usr/local/src/
# wget http://nginx.org/download/nginx-1.4.2.tar.gz #之前選過比較新的nginx版本,但是發現可能這種安裝方式不太對,所以機選的這個版本
# 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
3、測試nginx lua
隨便找個server,寫個helloworld測試樣例,然后進行訪問,如果頁面顯示出“hello,lua” 為lua測試通過
location /hello { default_type 'text/plain'; content_by_lua 'ngx.say("hello, lua")'; }
4、到達這里的時候,證明nginx安裝已經成功,添加配置(重點)
在nginx.conf文件中,http模塊下、配置好日志格式
log_format main '$remote_addr | $remote_user | [$time_local] | '
'"$request" | $status | $body_bytes_sent | '
'"$http_referer" | "$http_user_agent" | $request_time | '
'"$request_body" | "$resp_body"'; #resp_body一定要加,否則日志中打印不出來信息
5、上面的日志添加完畢后,去虛擬主機中添加需要返回的值
server {
listen 80;
listen 443 ssl;
server_name srv.niu.com srv-dev.niu.com;
index index.html index.htm index.php;
root /data/www/service/public/;
#只需要添加以下紅字內容即可。
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
';
if (!-e $request_filename) {
rewrite ^/(.*\.(js|ico|gif|jpg|png|css|bmp|html|xls)$) /public/$1 last;
rewrite ^/(.*) /index.php?$1 last;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
6、重啟nginx,去訪問日志中查看訪問日志返回值,返回值會類似於下圖中的16進制字符格式(0d\x08\x06\x00\x00\x00p\xE2\),如果需要解析這種格式,用python decode一下或者找個16進制轉換工具就可以了。
172.16.20.13 | - | [16/May/2019:17:52:35 +0800] | "POST /common/files/uploadContentToOSS HTTP/1.1" | 200 | 310 | "https://servicewechat.com/wx52986dc9279f9388/devtools/page-frame.html" | "Mozilla/5.0 (iPh one; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/1.02.1904090 MicroMessenger/6.7.3 Language/zh_CN webview/" | 0.865 | "- ---------------------------433507396236355334617594\x0D\x0AContent-Disposition: form-data; name=\x22userid\x22\x0D\x0A\x0D\x0A57f8611b19e28d7474d4f3f3\x0D\x0A----------------------------433507396236355334 617594\x0D\x0AContent-Disposition: form-data; name=\x22content\x22\x0D\x0A\x0D\x0Ahttp://tmp/wx52986dc9279f9388.o6zAJs25Q1uDqWAM93bv4s1HO0OU.bjiICvLqpZZL41a49201c8da73b9c7ce9bd2508d3e37.png\x0D\x0A------- ---------------------433507396236355334617594\x0D\x0AContent-Disposition: form-data; name=\x22filename\x22\x0D\x0A\x0D\x0AbjiICvLqpZZL41a49201c8da73b9c7ce9bd2508d3e37.png\x0D\x0A-------------------------- --433507396236355334617594\x0D\x0AContent-Disposition: form-data; name=\x22file\x22; filename=\x22wx52986dc9279f9388.o6zAJs25Q1uDqWAM93bv4s1HO0OU.bjiICvLqpZZL41a49201c8da73b9c7ce9bd2508d3e37.png\x22\x0D\x 0AContent-Type: image/png\x0D\x0A\x0D\x0A\x89PNG\x0D\x0A\x1A\x0A\x00\x00\x00\x0DIHDR\x00\x00\x00d\x00\x00\x00d\x08\x06\x00\x00\x00p\xE2\x95T\x00\x00\x00\x01sRGB\x00\xAE\xCE\x1C\xE9\x00\x00\x18yIDATx\x01\x ED\x9Dyl\xD5\xD5\xB6\xC7w\xA1-m\x99\xC7\x22c\x01\x19DTPT\x04\x14\xBC*\x0E\xA8q\x86\x87A\xC5{5Q\xDFM|\x9A\xA7/7\xEF\x8F\x97\x18cB\x8CS\x14\xFD\xE3\x1A\xBD\x8A\x8A\x1A.\x82\x08<D\x0D\xF3\xE4\x082\x0F-\xB3\x CC-S\x07\xA0}\xEB\xB3\xCA\xC2\xED\xEF\x9D\xD3\x9E\xDFi{\xCE\xB99\xDD\xC9\xEE\xFE\xFD\xF6\xBC\xD7wM{\xFF\xF6\x81\x8C\xAA\xAA\xAA\xCE\xCE\xB9\xC9\x12\xC7H\xCC\x97\xD8\x18\x12O\x81\xFD2\xE4|\x89\xCFe\x08 \x9 F\xC8\xC3\xF8\xC4\xCF\xA1q\xC4\x08\x14\x98\x06 \xC5R\xD0:BacV\xE2)P\x02 U\x89\x1F\xB7q\xC4h\x14h\x12\xAD\xA01?9\x14h\x04$9t\x8F:jZ\x02R\x5C\x5C\xEC^x\xE1\x05\xB7~\xFDzWYY\x19\x958\xC9(HK@rrr\xDC\xA1C\x87\ xDC\xE7\x9F\x7F\xEE\xF6\xED\xDB\x97\x0C\xBAG\x1D3\xED\x00A\x22\xCA\xCB\xCB]\x8F\x1E=\xDC\xF7\xDF\x7F\xEF\xD6\xAE]\xEB\xCE\x9E=\x1B\x95@\x89.\xC8L\xF4\x80\xC9\x1E\xEF\xE8\xD1\xA3\xEE\xE3\x8F?vyyy\xEE\xD4\x A9S\x0E\xF5\x05HM\x9B6M\xF6\xD4t\xFC\xB4\x03\xA4Y\xB3f\xEE\xF0\xE1\xC3n\xEB\xD6\xAD\xAEu\xEB\xD6\xEE\x82\x0B.p\x99\x99\xA9C\x86\xB4SY\xD8\x8F\xAE]\xBB\xBA\xA2\xA2\x22\xD7\xB7o_\x97\x95\x95\x95R\x86=\xED\x 00A\x1A.\xBA\xE8\x22\xC7~\xB8m\xDB\xB6\xAA&N\x9F>\x9D\x12\xEA\x8AI\xA4\xE5N\x1D\xBB1\x7F\xFE|\x87\xB4dgg\xBB!C\x86\xB8\xFC\xFC\xD48WM;\x099s\xE6\x8C\xAA\xA9+\xAF\xBC\xD2\x1D?~\xDC}\xF2\xC9'\xEE\xDDw\xDFue ee)!%\xA9c\xCD\x12@\x0E\xDC\xDBe\xCB\x96\xB9\xB9s\xE7\xEA\xFEc\xDB\xB6m\xAE\xA4\xA4\xC4\xED\xDE\xBD[\x8D\xFB\xAD\xB7\xDE\xEA:u\xEA\xE4\x9A4I\x1E\x9F\xA6\x15 \xB8\xB7\x9B6mrsf\xCFv9\xB9\xB9\xEE\xF0\x91#j\x D0\xF1\xBC\xBE\xFE\xFAk\x97+y\x03\x07\x0Et\x83\x06\x0DJ\x1A(\xC9c\x85\x04HD\xA4!0\xE4Y\xCD\xB2\xDD\x11\xD9\x8FTTTh\x15\xF6 \xECI\xB0+\xEC\xE0\x93y\x9C\x926\x12\x
本文參考至 : https://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_663days.html 感謝作者,在作者的基礎上對http模塊下的配置文件做了一些變更,因為按照原文是無法展示出日志的。
最后。
如有冒犯隨時刪除