返回200却页面崩溃,post 为空 TTFB 10 分钟?
来源:互联网 发布:时时彩网站源码下载 编辑:程序博客网 时间:2024/06/05 01:08
1、这是啥?
记一次惊(shi)心(fen)动(nao)魄(can)的线上 bug 修复!
2、发生了啥?
话说上班时分,孤刚看完盘(妈蛋跌停)正津津有味的吸着酸奶。忽然间微信群啪啪啪几声响。消息直接弹到哥的桌面上——哥被艾特了!
原来是运营小哥。
“刚哥,上传文件不了了!”
“刚哥,页面崩溃了!!”
“刚哥。。。。。”
哥十分淡定:“什么情况啊,确定是bug吗?”
运营小哥还是十分有经验的。啪啪啪几声,就把得现步骤以及数据种种给哥发过来了。
哥拿着数据去走了一遍,马上get到问题所在了。原来是——当上传文件过大 3M/file 12M/total (大么?)导致浏览器直接罢工了(估计是拿不到返回矫情了)。
3、然后呢?
然后当然是赶紧找原因修复问题啊。毕竟线上啊,一秒钟进出几十万的线上啊!
首先抓个包看看,我擦,200啊,一切都很和谐啊。那为啥转了这么长时间菊花?为啥直接崩溃了?
看看timing:
卧槽,TTFB 什么鬼,花了十分钟啊!
着急,赶紧看看 nginx 日志:
咦。。。你还真是花了十分钟啊。。
再看看,php 日志:
噗,POST 参数空的。赶紧看看其他请求,没问题。就这个有问题。吓一跳。
问问左边,“今儿上线没?”,“没”,右边,“今儿上线没?”, “没!”
既然同一套代码的请求下,只有文件过3M的有问题,且没上过代码,那果断是配置的问题了。
可能原因:
nginx 配置:
嗯,没有破绽啊。
php.ini:
嘿呀,可不就是你吗,闹哪样!
有可能是因为 upload_max_filesize的问题,果断 改成8M试试,这时候页面没有崩溃了,但是因为 post 里的数据还是空的,所以逻辑上肯定不对嘛,
这次 TTFB 还是花了4分钟,不过少很多了。感觉看到了希望:
算了,把上面这两全都改成 30 M吧,跟 nginx 对应上。毕竟我上传的文件是12M之巨。咦,对啊,我上传的文件是12M的啊。为什么我才改成8M,,脑残了。
咦,果然,这次,成功了。呵呵。。。妈蛋的,这不是应该报错吗?不是应该直接干个500出来,告诉我 upload_max_filesize limit之类的错吗?怎么整个200给我。
让哥查了老半天。。。[CRY]:
4、后记
你看,解决问题就是这样,千回百折。人生不也是这样吗?道路蜿蜒崎岖,路途坎坷多坚,即便是有思路的,即便是有方向的,也会因为一时的脑残而多走两步。
- 返回200却页面崩溃,post 为空 TTFB 10 分钟?
- 关于ajax——返回为200却到error页面,同步ajax页面跳转不成功
- 数据为空 崩溃!!
- 指针为空的崩溃
- ajax中调用responseXML总返回null而调用responseText却返回不为空的解决方法
- 页面请求 Waiting (TTFB) 时间过长
- 服务器返回文本为空
- 为何GetProcAddress()返回为空?
- IOS pathForResource 返回为空
- findViewById 返回值为空
- DWR:返回值为空?
- 关于JSP开发中jsp页面调用DAO返回的ResultSet为空值完美解决方案
- 用js来判断输入框是否为空!和返回到上一个页面!
- ascx页面session为空
- ascx页面session为空
- CreateWindowEx返回句柄为0, GetLastError却返回0
- 查询判断某个字段是否为空 不为空返回1 为空返回0
- 微信 php form post 为空
- 判断一棵树是不是平衡树(数值大小不判断,只盼高度)
- Android SpannableString 基本用法
- 串口的Hex/AscII发送与显示
- 周鸿祎-----把自己当成打工的,一辈子都是打工的
- HDU 5477 A Sweet Journey
- 返回200却页面崩溃,post 为空 TTFB 10 分钟?
- windows下cmd命令
- eclipse下切换svn用户
- iOS与JS交互实战篇(ObjC版)
- 初识Hadoop之HDFS体系
- 时间戳
- 创始人汪华:创新者去哪儿
- Python模拟HTTPS请求返回HTTP 401 unauthorized错误
- 微信摇一摇的代码实现