摘要:查了一下,報錯誤,表示請求實(shí)體太大。此錯誤通常出現(xiàn)在使用請求進(jìn)行文件上傳的時候,因?yàn)樯蟼魑募菀壮霈F(xiàn)大文件,比如超過的。所以,結(jié)果很明顯了,問題基本出現(xiàn)在前端請求服務(wù)轉(zhuǎn)發(fā)跳板機(jī)三個位置。修改為以后,問題解決。
今天陽光明媚,天氣正好,心情很是美麗。
但是業(yè)務(wù)同學(xué)突然說生產(chǎn)環(huán)境出bug了。
對不起,收回前言,感覺是臺風(fēng)過境。。
。
查了一下,報413錯誤,表示http請求實(shí)體太大。
此錯誤通常出現(xiàn)在使用http請求進(jìn)行文件上傳的時候,因?yàn)樯蟼魑募菀壮霈F(xiàn)大文件,比如超過5m的。
但是今天導(dǎo)致這個問題的是因?yàn)榍岸藀ost請求發(fā)送的json對象太“大”了,108k左右,排查了一下,感覺很奇怪,報文體小一點(diǎn),90多k,沒問題,100多k就有問題,100k左右應(yīng)該就是出現(xiàn)問題的分界線。
看了一下沒有日志產(chǎn)生,基本可以確定不是后臺代碼的問題。
分析了一下http請求經(jīng)過的路徑節(jié)點(diǎn):
**前端請求**——>**node服務(wù)轉(zhuǎn)發(fā)**——>**跳板機(jī)**——>**Nginx轉(zhuǎn)發(fā)**——>**后臺Tomcat服務(wù)**——>**后臺代碼**
第一反應(yīng)是會不會是因?yàn)镹ginx的配置導(dǎo)致的,記得之前有一次上傳文件也報413,就是因?yàn)槲募笮∈?M,超出了Nginx配置的上限導(dǎo)致的。
于是第一時間聯(lián)系了ops,他們查看結(jié)果是:
client_max_body_size 5M;(請求體緩存區(qū)大小)
client_body_buffer_size 128k;(客戶端請求體緩沖區(qū)大小)
所以沒有問題,為了保險起見,client_max_body_size修改為20M,但是問題還存在,所以并不是Nginx配置的問題。
這是我的注意力賺到了Tomcat,Tomcat的server.xml中,maxPostSize參數(shù)會限制post請求報文體的最大值,繼續(xù)麻煩ops,發(fā)現(xiàn)server.xml中并沒有配置這個參數(shù),查了一下,沒有配置的時候,默認(rèn)值是2M(2097152 (2 megabytes).),也沒有問題。。。
emmmmmm。。。。
因?yàn)榍昂蠖朔蛛x,不太清楚前端的實(shí)現(xiàn)會不會限制post報文體大小,雖然我很自信后端代碼不會有問題,但還是先用postman測試了后端,發(fā)現(xiàn)即使是1M的數(shù)據(jù),也沒得問題。
所以,結(jié)果很明顯了,問題基本出現(xiàn)在前端請求、node服務(wù)轉(zhuǎn)發(fā)、跳板機(jī)三個位置。
找了前端同學(xué)了解了一下,原來他們node服務(wù)使用Egg.js框架,而Egg的配置jsonLimit,會限制json報文體的大小,如果沒有配置的話,默認(rèn)為100k。
修改為5M以后,問題解決。
完美。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/75773.html
摘要:基礎(chǔ)知識復(fù)習(xí)后端掘金的作用表示靜態(tài)修飾符,使用修飾的變量,在中分配內(nèi)存后一直存在,直到程序退出才釋放空間。將對象編碼為字節(jié)流稱之為序列化,反之將字節(jié)流重建成對象稱之為反序列化。 Java 學(xué)習(xí)過程|完整思維導(dǎo)圖 - 后端 - 掘金JVM 1. 內(nèi)存模型( 內(nèi)存分為幾部分? 堆溢出、棧溢出原因及實(shí)例?線上如何排查?) 2. 類加載機(jī)制 3. 垃圾回收 Java基礎(chǔ) 什么是接口?什么是抽象...
摘要:元組也支持內(nèi)置函數(shù)的參數(shù)必須是一個序列字符串列表元組元組有什么用既然中有這么個數(shù)據(jù)結(jié)構(gòu),自然就有它的用武之地。 引言 想學(xué)爬蟲還是 python 專業(yè)啊,之前一直在用 java, 現(xiàn)在決定嘗嘗鮮,使用 python及爬蟲框架來完成網(wǎng)絡(luò)數(shù)據(jù)采集。編程語言之間都是相通的,比如都需要模塊化,引入其他文件來實(shí)現(xiàn)功能,使用列表等容器來處理數(shù)據(jù),都要使用 json 或 xml 來解析和傳輸數(shù)據(jù)。你...
摘要:元組也支持內(nèi)置函數(shù)的參數(shù)必須是一個序列字符串列表元組元組有什么用既然中有這么個數(shù)據(jù)結(jié)構(gòu),自然就有它的用武之地。 引言 想學(xué)爬蟲還是 python 專業(yè)啊,之前一直在用 java, 現(xiàn)在決定嘗嘗鮮,使用 python及爬蟲框架來完成網(wǎng)絡(luò)數(shù)據(jù)采集。編程語言之間都是相通的,比如都需要模塊化,引入其他文件來實(shí)現(xiàn)功能,使用列表等容器來處理數(shù)據(jù),都要使用 json 或 xml 來解析和傳輸數(shù)據(jù)。你...
摘要:一直以來,前端的線上問題很難定位,因?yàn)樗l(fā)生于用戶的一系列操作之后。當(dāng)然,這些問題并非不能克服,讓我們來一起看看如何去定位線上的問題吧。地址參考一步一步搭建前端監(jiān)控系統(tǒng)錯誤監(jiān)控篇一步一步搭建前端監(jiān)控系統(tǒng)接口請求異常監(jiān)控篇 摘要: 記錄用戶行為,排查線上BUG。 作者:一步一個腳印一個坑 原文:如何定位前端線上問題(如何排查前端生產(chǎn)問題) Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所...
閱讀 2158·2021-11-11 16:55
閱讀 1502·2021-09-28 09:36
閱讀 1100·2019-08-29 15:21
閱讀 1650·2019-08-29 14:10
閱讀 2837·2019-08-29 14:08
閱讀 1692·2019-08-29 12:31
閱讀 3312·2019-08-29 12:31
閱讀 1091·2019-08-26 16:47