歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 返回200卻頁面崩潰,post 為空 TTFB 10 分鐘?

返回200卻頁面崩潰,post 為空 TTFB 10 分鐘?

日期:2017/3/1 11:56:26   编辑:關於Linux

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、後記

你看,解決問題就是這樣,千回百折。人生不也是這樣嗎?道路蜿蜒崎岖,路途坎坷多堅,即便是有思路的,即便是有方向的,也會因為一時的腦殘而多走兩步。

所以,當我們的人生遇到波折的時候——算了,不裝逼了。下班回家。食堂都沒飯了。


Copyright © Linux教程網 All Rights Reserved