77家的会客2010

被一句无关的代码折腾到凌晨3点!

这个网站呢,是用python(web.py)开发的,跑了几年了,一直是apache+fastcgid来跑的,其实也一直相安无事。

最近做另一个网站,就用了nginx+uwsgi+supervisor来跑服务器,nginx用来转发请求和serve静态文件那效率真不是盖的,后端的uwsgi倒成了瓶颈。

但,不管怎么说,还是比apache+fastcgid快不少,更何况fastcgi在跑的时候总是在log打一些错误,虽然不影响网站本身,但看着这些就不舒服呀(强迫症病发了)。

于是呢,就打算把这个也换成nginx+uwsgi来跑得了,说了这么多,竟然还没进正题 -__-##

 

是这样的,把nginx和uwsgi配置好了以后用supervisor把uwsgi跑起来,静态文件没问题,然后一访问python就出错,一开始以为是uwsgi配置有问题,一直提示

invalid CGI output !!!

然后查看uwsgi的log,supervisor的log,nginx的log,找不到一点线索。

nginx的log里一直是

*57 upstream prematurely closed connection while reading response header from upstream,

意思是说服务转发到后端没得到请求的结果。

uwsgi就一直给invalid CGI output,generated 0 bytes in xxx msecs却不给具体错在哪。

 

但这个时候用web.py自带的python code.py来跑却完全没问题,并且同样的代码在apache+fastcgid下跑也没问题。

就在崩溃了无数遍后,偶然发现,竟然有的链接是可以访问的,只是blog相关的全访问出错(本站首页和blog首页一体的),可算是看到点曙光了!

于是开始排查,先把和blog相关的url全访问一遍,发现没一个好用的,于是锁定了blog.py这个文件,可这个文件有几百行代码呀,一行行看是不行的,只能倒着从后相前删功能,

竟然是下面这么一行代码(print web.ctx.method)!不知道何时调试的时候放上去了,然后就一直在上面待了几年没下来。。。

[被一句无关的代码折腾到凌晨3点!]的回复

Post a Comment~