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

 更新时间:2020年11月09日 12:01:51   作者:当年的春天  
这篇文章主要介绍了Nginx设置日志打印post请求参数的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

【前言】

        我们项目的短信功能是接第三方,原来对接第三方给我们回执确认请求是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打印的结果,很显然没有将参数打印出来

                  3、设置后post请求,nginx打印参数,发现参数虽然打印出来但是有乱码情况

                  4、解决乱码

                      (1)需要在log_format main后加 escape=json

                      (2)nginx的版本需要是1.15.1及以上

                      (3)满足以上最终打印出的结果

           三、看nginx日志必要性

                  1、更加全面:它可以记录访问者的ip浏览器以及请求参数等信息比java的请求日志更加全面;

                  2、请求大时,java程序处理不过来,这时java日志没有多余访问请求,而nginx中有,有利于排查问题,优化系统性能。

【总结】

        1、通过日志可以快速定位问题;

        2、排查问题时考虑要全面,从多过维度去思考。

到此这篇关于Nginx设置日志打印post请求参数的方法的文章就介绍到这了,更多相关Nginx 日志打印post请求参数内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • nginx 多站点配置方法集合

    nginx 多站点配置方法集合

    关于nginx的多站设置,其实和apache很相似,假设我们已经有两个域名,分别是:www.websuitA.com和www.websuitB.com。并且这两个域名已经映射给了IP为192.168.1.1的服务器。
    2011-06-06
  • Nginx限制IP访问某些页面的操作

    Nginx限制IP访问某些页面的操作

    这篇文章主要介绍了Nginx限制IP访问某些页面的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Nginx中Location配置超详细讲解

    Nginx中Location配置超详细讲解

    最近一直在做location 配置,遇到优先级别问题(如果配置不当可能存在安全隐患哦),下面这篇文章主要给大家介绍了关于Nginx中Location配置的相关资料,需要的朋友可以参考下
    2023-01-01
  • nginx开启HSTS让浏览器强制跳转HTTPS访问详解

    nginx开启HSTS让浏览器强制跳转HTTPS访问详解

    这篇文章主要介绍了nginx开启HSTS让浏览器强制跳转HTTPS访问详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Ubuntu16.04.1 安装Nginx的方法

    Ubuntu16.04.1 安装Nginx的方法

    这篇文章主要介绍了Ubuntu16.04.1 安装Nginx的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • Nginx下实现pathinfo及ThinkPHP的URL模式

    Nginx下实现pathinfo及ThinkPHP的URL模式

    本篇文章主要介绍了Nginx下实现pathinfo及ThinkPHP的URL模式。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Nginx防御DDOS攻击的配置方法教程

    Nginx防御DDOS攻击的配置方法教程

    Nginx是一款轻量级的Web服务器,由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引Rambler使用。 下面这篇文章主要给大家介绍了关于Nginx防御DDOS攻击的配置方法,需要的朋友可以参考下。
    2017-07-07
  • Nginx反斜杠自动解码问题解决方法

    Nginx反斜杠自动解码问题解决方法

    这篇文章主要介绍了Nginx反斜杠自动解码问题解决方法,有些时候是不需要解码的,可nginx缺会自动解码,本文讲解的就是如何解决这个问题,需要的朋友可以参考下
    2015-02-02
  • nginx 镜像中文字符集使用详解

    nginx 镜像中文字符集使用详解

    这篇文章主要为大家介绍了nginx 镜像中文字符集使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • nginx?ingress限速那些事浅析

    nginx?ingress限速那些事浅析

    这篇文章主要为大家介绍了nginx?ingress限速的一些知识的浅析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论

?


http://www.vxiaotou.com