NGINX+UWSGI 莫名发生Nginx 502 Bad Gateway错误的排查过程

时间:2024-01-04 16:10:08

自己有个阿里云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://*.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,未经允许请勿私自转载