Nginx設置日志打印post請求參數(shù)的方法
【】
我們項目的短信功能是接第三方,原來對接第三方給我們回執(zhí)確認請求是get請求我們在排查問題的時候可以通過nginx的日志拿到對方給我們請求的參數(shù);最近我們換了另外一家第三方,新的第三方給我們的確認請求是post,遇到問題排查,發(fā)現(xiàn)nginx沒有打印具體參數(shù),于是查閱一些資料和運維一起做了實驗和線上調(diào)整,調(diào)整后我們可以拿到請求參數(shù),更方便我們排查問題;
【Nginx設置打印post請求參數(shù)】
一、Nginx配置文件(nginx.conf)設置打印post請求參數(shù):在http模塊的log_format中增加"dm":$request_body 防止中文亂碼,增加 escape=json
log_format main escape=json '{ "@timestamp": "$time_iso8601", '
'"remote_addr": "$remote_addr",'
'"costime": "$request_time",'
'"realtime": "$upstream_response_time",'
'"status": $status,'
'"x_forwarded": "$http_x_forwarded_for",'
'"referer": "$http_referer",'
'"request": "$request",'
'"upstr_addr": "$upstream_addr",'
'"bytes":$body_bytes_sent,'
'"dm":$request_body,'
'"age
二、設置前后的效果對比
1、發(fā)送請求的json格式
{
"results":[
{
"price":{
"pricePerMessage":0.01,
"currency":"aaa"
},
"messageId":"ff4804ef-6ab6-4abd-984d-ab3b1387e852",
"to":"385981178",
"sentAt":"2015-02-12T09:58:20.323+0100",
"doneAt":"2015-02-12T09:58:20.337+0100",
"smsCou
2、設置前post請求,nginx打印的結果,很顯然沒有將參數(shù)打印出來

3、設置后post請求,nginx打印參數(shù),發(fā)現(xiàn)參數(shù)雖然打印出來但是有亂碼情況

4、解決亂碼
(1)需要在log_format main后加escape=json
(2)nginx的版本需要是1.15.1及以上
(3)滿足以上最終打印出的結果

三、看nginx日志必要性
1、更加全面:它可以記錄訪問者的ip瀏覽器以及請求參數(shù)等信息比java的請求日志更加全面;
2、請求大時,java程序處理不過來,這時java日志沒有多余訪問請求,而nginx中有,有利于排查問題,優(yōu)化系統(tǒng)性能。
【總結】
1、通過日志可以快速定位問題;
2、排查問題時考慮要全面,從多過維度去思考。
到此這篇關于Nginx設置日志打印post請求參數(shù)的方法的文章就介紹到這了,更多相關Nginx 日志打印post請求參數(shù)內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
關注官方微信