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
Nginx优化服务之网页压缩的实现方法
Mar 31 Servers
nginx 反向代理之 proxy_pass的实现
Mar 31 Servers
浅谈Nginx 中的两种限流方式
Mar 31 Servers
Linux中Nginx的防盗链和优化的实现代码
Jun 20 Servers
nginx实现动静分离的方法示例
Nov 07 Servers
Minikube搭建Kubernetes集群
Mar 31 Servers
CentOS下安装Jenkins的完整步骤
Apr 07 Servers
Linux下使用C语言代码搭建一个简单的HTTP服务器
Apr 13 Servers
Mac电脑OS系统下安装Nginx的详细教程
Apr 14 Servers
详解Nginx的超时keeplive_timeout配置步骤
May 25 Servers
windows server2016安装oracle 11g的图文教程
Jul 15 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
php扩展开发入门demo示例
2019/09/23 PHP
jQuery each()小议
2010/03/18 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
初学python数组的处理代码
2011/01/04 Python
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
研究生自我鉴定范文
2013/10/30 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
销售竞赛活动方案
2014/08/23 职场文书
骨干教师事迹材料
2014/12/17 职场文书
邹越演讲观后感
2015/06/15 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL