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集群技巧(Vmware部署Nginx+KeepAlived集群双主架构的问题及解决方法)
- linux nginx搭建(Ubuntu使用nginx搭建webdav文件服务器的详细过程)
- nginx路径匹配优先级(Nginx的location的常见规则优先级问题)
- nginx404错误页面设置(Nginx tp3.2.3 404问题解决方案)
- nginx学习需要哪些知识(一篇文章搞懂Nginx是什么,能干什么)
- nginx如何代理项目(Nginx代理同域名前后端分离项目的完整步骤)
- nginxlocation匹配参数(nginx location优先级的深入讲解)
- nginx http转https配置(Nginx配置并兼容HTTP实现代码解析)
- nginx配置详细讲解(Nginx服务快速入门教程)
- docker nginx 配置详解(Docker 如何安装 Nginx)
- 安装了nginx怎么启动(windows下快速安装nginx并配置开机自启动的方法)
- nginx服务器和apache服务器(Nginx vs Apache两大web服务器比较)
- nginx配置详解(nginx请求限制配置方法)
- nginx配置文件位置(查看nginx配置文件路径和资源文件路径的方法)
- linux安装nginx启动页面访问不到(apache,nginx上传目录无执行权限的设置方法)
- nginx优化安全设置(nginx优化的六点方法)
- 潘长江小品《照亮全家福》台词剧本完整版(潘长江小品照亮全家福台词剧本完整版)
- 一窗通办政务服务小品剧本(一窗通办政务服务小品剧本)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
- 蒜苔和鱿鱼尾巴一起炒,味道特别棒,又脆又嫩,有滋又有味(蒜苔和鱿鱼尾巴一起炒)
热门推荐
- css3动画效果图(CSS3 三维变形实现立体方块特效源码)
- thinkphp框架案例(thinkphp5.1框架容器与依赖注入实例分析)
- left join on和where的区别
- 数据库设计的几个建议
- mysql为什么用decimal类型(MySQL decimal unsigned更新负数转化为0)
- 如何用iis7.5设置网站(IIS .7z文件支持下载的添加方法)
- apache配置讲解(apache中封IP的实现方法)
- c语言获取系统日期函数(C# ling to sql 取多条记录最大时间)
- mysql建表时指定聚簇索引(一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的)
- sqlserver表空间占用率(SQL Server获取磁盘空间使用情况)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9