我在不支持mod_wsgi
的共享服务器上使用Pyramid框架。一旦我部署了项目,我开始得到500个错误,没有真正有用的错误消息:
[Thu Sep 22 21:40:52 2011] [warn] [client IP] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Thu Sep 22 21:40:52 2011] [error] [client IP] Premature end of script headers: dispatch.fcgi
[Thu Sep 22 21:40:53 2011] [warn] [client IP] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Thu Sep 22 21:40:53 2011] [error] [client IP] Premature end of script headers: dispatch.fcgi
我并不是太确定发生了什么,并且在(部分)意外中我将我的应用程序的.ini
文件复制到了另一个使用sqlite连接而不是postgres连接的文件。突然,我的应用程序启动并运行。但是,我注意到似乎突然切断了响应(响应的结束没有被刷新到客户端)。
我一直在敲击我的键盘试图弄清楚发生了什么,所以我希望其他人遇到类似的症状并找出解决方案。
我的fcgi条目看起来像这样(如果它有帮助的话):
app = "/dir"
inifile = "production.ini"
import sys, os
sys.path.insert(0, app)
from paste.deploy import loadapp
wsgi_app = loadapp("config:%s/%s" % (app, inifile))
if __name__ == "__main__":
from flup.server.fcgi import WSGIServer
WSGIServer(wsgi_app).run()
我记得在某个地方发过帖子,建议在一个单独的线程中启动WSGI服务器,在主线程中休息一段时间,但这对我来说似乎是一个可怕的黑客攻击。