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

Nginx设置日志打印post请求参数的方法,第1张

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

本文详细介绍了Nginx设置日志打印post请求参数的方法。原文根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。

[序言]

人人新项目的短信功能是连接第三方。最初,连接第三方是为了让我们返回表单,以确认请求是get请求。在排查问题时,我们可以根据nginx的日志,获取对方要求我们请求的参数。最近我们换了另一个第三方,新的第三方让我们确认请求是post。遇到问题时发现nginx没有打印实际参数,于是查了一些资料,和运维管理一起做了实验和在线调整。经过调整,我们可以获得要求的参数,这更方便我们检查问题。

[nginx设置打印发布请求参数]

一、Nginx环境变量(nginx.conf)设置打印post请求的参数:在http控制模块的log_format中,抛出“DM”:$request_body避免中文乱码,抛出escape=json。

log_formatmainescape=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.logmain;

其次,对比设置前后的实际效果

1.推送请求的json文件格式

{ "results":[ { "price":{ "pricePerMessage":0.01, "currency":"aaa" }, "messageId":"ff4804ef-6ab6-4abd-984d-ab3b1387e852", "to":"385981178", "sentAt":"2015-02-12T09:58:20.3230100", "doneAt":"2015-02-12T09:58:20.3370100", "smsCount":1, "status":{ "id":5, "groupId":3, "groupName":"DELIVERED", "name":"DELIVERED_TO_HANDSET", "description":"Messagedeliveredtohandset" }, "error":{ "groupId":0, "groupName":"OK", "id":0, "name":"NO_ERROR", "description":"NoError", "permanent":false } } ] }

2.设置前的post请求,nginx打印的结果,明显参数没有打印出来。

3.设置post请求后,nginx打印参数,发现参数打印出来却有代码错误。

4.处理错误代码

(1)escape=json必须加在log_formatmain之后。

(2)2)nginx的版本号必须是1.15.1及以上。

(3)考虑上面最后打印的结果。

三。阅读nginx日志的重要性

1.更全面:可以记录访问者ip电脑浏览器的信息内容及其请求参数,比java的请求日志更全面;

2.当请求量很大时,java程序无法执行。此时java日志中没有不必要的浏览请求,而nginx中有,有利于排除问题,优化软件功能。

[摘要]

1、根据日志可以快速准确定位;

2.排查问题时,全方位考虑,多层次思考。

到目前为止,本文已经详细介绍了Nginx如何设置日志打印post请求的参数。有关Nginx日志打印post请求参数的大量信息,请搜索您以前文章的内容或再次访问下面的相关文章。期待你以后的申请!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/774201.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存