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和IIS中使用的ssl证书
Jun 21 Servers
nginx作grpc的反向代理踩坑总结
Jul 07 Servers
zabbix自定义监控nginx状态实现过程
Nov 01 Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
如何通过cmd 连接阿里云服务器
Apr 18 Servers
nginx lua 操作 mysql
May 15 Servers
linux目录管理方法介绍
Jun 01 Servers
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
Jun 10 Servers
vscode远程免密登入Linux服务器的配置方法
Jun 28 Servers
Windows server 2003卸载和安装IIS的图文教程
Jul 15 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 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中文分词 自动获取关键词介绍
2012/11/13 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
英国女装网上商店:I Saw It First
2018/10/18 全球购物
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
编辑求职信样本
2013/12/16 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
大专生求职信
2014/06/29 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
员工工作自我评价
2014/09/26 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
关于使用Redisson订阅数问题
2022/01/18 Redis