nginx+uwsgi产生502错误

1745

开发的网站通过nginx部署后,报 502 Bad Gateway

打开了nginx的error日志后,发现如下信息:

2016/03/25 12:28:04 [error] 24207#0: *22 upstream prematurely closed connection while reading response header from upstream, client: 218.88.28.206, server: most3d.cn, request: “GET /model/15/ HTTP/1.1”, upstream: “uwsgi://127.0.0.1:9090”, host: “most3d.cn:8000”

应该是uwsgi先于nginx超时终止了。

 

于是我在uwsgi配置文件中添加了 :

socket-timeout=10

将连接超时时间设为了10秒(uwsgi默认是4秒)

问题得以解决。

 

事后分析:

这个问题,在刚开始部署时并不严重,偶尔产生一两次,但版本更迭几次后,变得经常502了,可能是某些地方代码处理的不好,同步操作太多,准备后期审查代码执行效率问题。

 

2016.3.29

再次产生502问题,nginx报错和之前一样,但奇怪的是,同样类型的页面,有些报502,有些正常,后同事查出,是页面生成时数据库没有正常写入,而读取时,flask进行sql相关操作报错造成。

由此可见,程序执行错误,造成uwsgi进程意外中止,也会造成502错误。

留下一个答复

Please enter your comment!
Please enter your name here