nginx日志请求状态(Nginx设置日志打印post请求参数的方法)
nginx日志请求状态
Nginx设置日志打印post请求参数的方法【前言】
我们项目的短信功能是接第三方,原来对接第三方给我们回执确认请求是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做转发配置weight啥意思(Nginx中break与last的区别详析)
- nginx和lua哪个好(nginx+lua单机上万并发的实现)
- nginxhttp转https原理(nginx如何将http访问的网站改成https访问)
- nginx+ssl配置详解(nginx配置ssl实现https的方法示例)
- nginx配置详细讲解(Nginx服务快速入门教程)
- nginx 使用手册(nginx服务器的下载安装与使用详解)
- nginx动态路径配置(Nginx本地目录映射实现代码实例)
- 如何提高nginx性能(提升Nginx性能的一些建议)
- nginx给需要转发的链接添加参数(Nginx 根据URL带的参数转发的实现)
- nginx怎么支持http转https(Nginx域名转发https访问的实现)
- nginx配置文件位置(查看nginx配置文件路径和资源文件路径的方法)
- nginx https 域名配置(阿里云Nginx配置https实现域名访问项目图文教程)
- nginx怎么用ssl证书(制作能在nginx和IIS中使用的ssl证书)
- linux部署flask项目(用uWSGI和Nginx部署Flask项目的方法示例)
- nginx报网络连接错误(Nginx 502 Bad Gateway错误原因及解决方案)
- 新手nginx反向代理问题(详解Nginx proxy_pass的一个/斜杠引发的血案)
- 每周一首古诗 《绝句》(每周一首古诗绝句)
- 蓝色代表什么(蓝色代表什么性格的人)
- 红色代表什么(红色代表什么情感和含义)
- 南宋志南和尚绝句 杨柳风似庙中来(南宋志南和尚绝句)
- 今天要穿什么颜色(今天要穿什么颜色的衣服最吉利)
- 一道高中题-求杯子的高度(一道高中题-求杯子的高度)
热门推荐
- 一个网站服务器有多大(主流网站服务器配置有哪些组成 主流网站服务器多少钱)
- HttpModule的作用
- python yield 使用浅析(yii框架使用分页的方法分析)
- docker镜像创建教程(Docker镜像加载原理)
- dedecms栏目内容怎么插入分页符(dedecms织梦让likearticle的mytypeid支持多个栏目和子栏目)
- python面向对象使用方法(Python面向对象程序设计之私有属性及私有方法示例)
- sqlserver修改排序规则几种方法(SQL Server 分页编号的另一种方式推荐)
- 织梦dedecms开启付费授权(去掉织梦DedeCMS列表推荐时标题被加粗的方法)
- python可以编写数据加密解密吗(python简单实现AES加密和解密)
- linux nginx搭建(Ubuntu使用nginx搭建webdav文件服务器的详细过程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9