欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

记一次post发送失败的排查历程

程序员文章站 2022-06-27 19:12:34
前几天遇到一个问题,同一个请求测试环境可以,生产不好用,报错如下:由于这边是请求发送到nginx再到tomcat,所以先看看tomcat日志,是不是后台发生了未知异常给终止了。经过排查发现tomcat根本没有相关日志,说明请求没有进入,所以排除后台的问题。接下来就想,是不是post太大,超出了tomcat设置的上限?于是拿出上图里的header和body,分别是1K和405K,确实不小。再看tomcat配置,发现里maxPostSize没有配置,所以默认是2M。抱着不信邪试试看的心态,给配成maxP...

前几天遇到一个问题,同一个请求测试环境可以,生产不好用,报错如下:记一次post发送失败的排查历程
由于这边是请求发送到nginx再到tomcat,所以先看看tomcat日志,是不是后台发生了未知异常给终止了。
经过排查发现tomcat根本没有相关日志,说明请求没有进入,所以排除后台的问题。
接下来就想,是不是post太大,超出了tomcat设置的上限?
于是拿出上图里的header和body,分别是1K和405K,确实不小。再看tomcat配置,发现里maxPostSize没有配置,所以默认是2M。抱着不信邪试试看的心态,给配成maxPostSize=-1(注意,tomcat7.0.63及以后版本,不限大小只能配-1,老版本可以配0或-1),发现依然不好使。同理,max-http-header-size我也试了,依然没作用。
说明tomcat没啥问题,这时候心态已经有点浮躁了。
接下来我能想到的只能有一个地方有问题--------那就是nginx。
于是乎我登上nginx服务器,看配置文件,打开日志,疯狂发送请求,惊喜的发现有日志,是500!仿佛发现了曙光,于是我赶紧看了一下nginx配置的请求头和body大小,心想八成是nginx配置少了。
等我一脸柯南破案的表情打开配置文件,发现body配的是10M,完全够用啊。我的天还能是哪里有问题?
后来跟技术老大说了一下这个事儿,他直接让我看nginx的error.log,我心理猛地一惊,咋把这玩意给忘了,赶紧去翻日志,这一眼过去,我肝都颤了。
记一次post发送失败的排查历程
日志明晃晃的makdir失败,于是我就到服务器上找这个路径,
发现,tmp下根本就没有client_body_tmp这个缓存文件夹。而不知道为啥他没有容错机制,不存在的时候不会主动创建。。。所以我手动创建了一下client_body_tmp就可以了。后来问了下运维人员,不知道啥时候调整了nginx配置文件中这个缓存文件的路径,
记一次post发送失败的排查历程才导致这么个问题。thatsall 记录一下希望遇到同样问题的华生能发现这个盲点。

本文地址:https://blog.csdn.net/simleShine/article/details/107331138