FastCGI / Python поток / проблема синхронизации? - PullRequest
1 голос
/ 23 сентября 2011

Я использую платформу Pyramid на общем сервере, на котором mod_wsgi не поддерживается.Развернув проект, я начал получать 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 в отдельном потоке, на какое-то время спящий основной поток, но мне это показалось ужасным хаком.

...