Nginx设置日志打印post请求参数的方法

2025-05-26 0 107

【前言】

我们项目的短信功能是接第三方,原来对接第三方给我们回执确认请求是get请求我们在排查问题的时候可以通过nginx的日志拿到对方给我们请求的参数;最近我们换了另外一家第三方,新的第三方给我们的确认请求是post,遇到问题排查,发现nginx没有打印具体参数,于是查阅一些资料和运维一起做了实验和线上调整,调整后我们可以拿到请求参数,更方便我们排查问题;

【Nginx设置打印post请求参数】

一、Nginx配置文件(nginx.conf)设置打印post请求参数:在http模块的log_format中增加"dm":$request_body 防止中文乱码,增加 escape=json

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14
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,'

'"agent": "$http_user_agent" }';

access_log /var/log/nginx/access.log main;

二、设置前后的效果对比

1、发送请求的json格式

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30
{

"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",

"smsCount":1,

"status":{

"id":5,

"groupId":3,

"groupName":"DELIVERED",

"name":"DELIVERED_TO_HANDSET",

"description":"Message delivered to handset"

},

"error":{

"groupId":0,

"groupName":"OK",

"id":0,

"name":"NO_ERROR",

"description":"No Error",

"permanent":false

}

}

]

}

2、设置前post请求,nginx打印的结果,很显然没有将参数打印出来

Nginx设置日志打印post请求参数的方法

3、设置后post请求,nginx打印参数,发现参数虽然打印出来但是有乱码情况

Nginx设置日志打印post请求参数的方法

4、解决乱码

(1)需要在log_format main后加escape=json

(2)nginx的版本需要是1.15.1及以上

(3)满足以上最终打印出的结果

Nginx设置日志打印post请求参数的方法

三、看nginx日志必要性

1、更加全面:它可以记录访问者的ip浏览器以及请求参数等信息比java的请求日志更加全面;

2、请求大时,java程序处理不过来,这时java日志没有多余访问请求,而nginx中有,有利于排查问题,优化系统性能。

【总结】

1、通过日志可以快速定位问题;

2、排查问题时考虑要全面,从多过维度去思考。

到此这篇关于Nginx设置日志打印post请求参数的方法的文章就介绍到这了,更多相关Nginx 日志打印post请求参数内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/zhanghan18333611647/article/details/81274967

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Nginx设置日志打印post请求参数的方法 https://www.kuaiidc.com/53204.html

相关文章

发表评论
暂无评论