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 09 Servers
Linux安装Nginx步骤详解
Mar 31 Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
nginx+lua单机上万并发的实现
May 31 Servers
学习nginx基础知识
Sep 04 Servers
Nginx防盗链与服务优化配置的全过程
Jan 18 Servers
Nginx+Windows搭建域名访问环境的操作方法
Mar 17 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
Docker下安装Oracle19c
Apr 13 Servers
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
Apr 29 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
Jun 21 Servers
VMware虚拟机安装 Windows Server 2022的详细图文教程
Sep 23 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
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
Js组件的一些写法
2010/09/10 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
pandas数值计算与排序方法
2018/04/12 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
Python龙贝格法求积分实例
2020/02/29 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
2014/09/02 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
化工机械应届生求职信
2013/11/04 职场文书
企业军训感想
2014/02/07 职场文书
大学生求职计划书
2014/04/30 职场文书
开工仪式策划方案
2014/05/23 职场文书
就业协议书样本
2014/08/20 职场文书
社区创先争优承诺书
2014/08/30 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
计划生育工作总结2015
2015/04/03 职场文书
公司2015年终工作总结
2015/05/26 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python