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


Posted in Servers onMarch 31, 2021

【前言】

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

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

一、Nginx配置文件(nginx.conf)设置打印post请求参数:在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,'
   '"agent": "$http_user_agent" }';

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

二、设置前后的效果对比

1、发送请求的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",
      "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请求参数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx访问日志及错误日志参数说明
Mar 31 Servers
apache基于端口创建虚拟主机的示例
Apr 24 Servers
nginx+lua单机上万并发的实现
May 31 Servers
详解nginx进程锁的实现
Jun 14 Servers
Nginx反向代理至go-fastdfs案例讲解
Aug 02 Servers
Nginx实现负载均衡的项目实践
Mar 18 Servers
为Centos安装指定版本的Docker
Apr 01 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Apr 29 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
Jun 01 Servers
WinServer2012搭建DNS服务器的方法步骤
Jun 10 Servers
Nginx配置使用详解
Jul 07 Servers
nginx 多个location转发任意请求或访问静态资源文件的实现
nginx简单配置多个server的方法
nginx proxy_cache 缓存配置详解
Nginx搭建rtmp直播服务器实现代码
Mar 31 #Servers
nginx 反向代理之 proxy_pass的实现
Mar 31 #Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 #Servers
nginx配置proxy_pass中url末尾带/与不带/的区别详解
Mar 31 #Servers
You might like
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
日期 时间js控件
2009/05/07 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python文件夹与文件的操作实现代码
2014/07/13 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
盛大笔试题
2016/11/05 面试题
舞蹈教育学专业推荐信
2013/11/27 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
永不妥协观后感
2015/06/10 职场文书
边城读书笔记
2015/06/29 职场文书
食堂卫生管理制度
2015/08/04 职场文书
入党心得体会
2019/06/20 职场文书