NGINX+UWSGI 莫名發生Nginx 502 Bad Gateway錯誤的排查過程


自己有個阿里雲UBUNTU運行的Django站,使用NGINX+UWSGI驅動,今天登陸系統后台更新內容出現了幾個大字:Nginx 502 Bad Gateway,一看情況不好,這是要糟糕啊。

啊西八!有事兒干了!

本文作者:博客園狂奔的大兵,地址:cnblogs.com/jaenlee/p/4214062.html,未經允許請勿私自轉載

首先想到的可能是代碼錯誤,先使用阿里雲鏡像還原功能還原,備份數據庫后,嘗試幾個還原點均不成功,放棄。

然后懷疑百度一下“502 bad gateway nginx”搜出了一堆垃圾內容,比如:http://www.ha97.com/4004.html,果敢爬梯子上google,搜出來的也不行啊,殘念!

上服務器查看錯誤日志發現Connection reset by peer,喜出望外:

本文作者:博客園狂奔的大兵,地址:cnblogs.com/jaenlee/p/4214062.html,未經允許請勿私自轉載

2015/01/06 20:45:13 [error] 841#0: *926 open() "/xxxx/xxxx/plugins/images/layout/preload.gif" failed (2: No such file or directo…………
2015/01/09 18:20:44 [error] 823#0: *6 recv() failed (104: Connection reset by peer) while reading response header from upstream, ………… 2015/01/09 18:42:08 [error] 823#0: *12 recv() failed (104: Connection reset by peer) while reading response header from upstream,…………

本文作者:博客園狂奔的大兵,地址:cnblogs.com/jaenlee/p/4214062.html,未經允許請勿私自轉載

google告訴我這里有:

http://stackoverflow.com/questions/22697584/nginx-uwsgi-104-connection-reset-by-peer-while-reading-response-header-from-u

據sof說原因是NGINX的默認緩沖區是4096,需要大量數據傳輸的話可以提高到64k (65535)。一種方法是在UWSGI配置文件添加buffer-size     =65535,重啟服務器,BINGO!

其實修復過程很簡單,時間花費30min,但是最大的感受是找錯誤一定要找到點上,否則自亂陣腳。

教訓:用google別用baidu,找准問題點再找問題原因。

記錄一下權當經驗自勉。

本文作者:博客園狂奔的大兵,地址:cnblogs.com/jaenlee/p/4214062.html,未經允許請勿私自轉載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM