带有fcgi的Django app仅适用于非守护进程模式

时间:2012-02-23 11:00:24

标签: django fastcgi lighttpd

我很抱歉,如果这是一个明显的问题,但我真的在我的智慧结束时试图解决这个问题。

我有一个Django应用程序,我作为fcgi进程运行,Lighttpd作为前端服务器。

我首先尝试按照文档中的建议运行Django FCGI进程(如下所示)

python ./manage.py runfcgi method=threaded host=127.0.0.1 port=9030

但是,当我尝试从网络浏览器访问该应用程序时,我收到'Page unavailable'消息。

然后我尝试在非守护进程模式下运行fcgi进程(希望在屏幕上看到一些错误消息),这次我能够从浏览器访问该应用程序,并且一切正常

python ./manage.py runfcgi method=threaded host=127.0.0.1 port=9030 daemonize=false

我在服务器上遇到这种奇怪的行为,而在我的本地开发机器上,即使fcgi进程被守护进行,一切正常。

我也尝试使用'prefork'而不是'thread'方法,但这也无济于事。

我发布了Lighttpd配置文件的相关部分,但我怀疑它有什么问题......

$HTTP["host"] == "ideas.mydomain.com" {
    debug.log-request-handling = "enable"
    fastcgi.debug = 1
    fastcgi.server = (
        "/ideas.fcgi" => (
            "main" => (
                "host" => "127.0.0.1",
                "port" => 9030,
                "check-local" => "disable",
            )
        ),
    )

    url.rewrite-once = (
        "^(/.*)$" => "/ideas.fcgi$1",
    )
}

来自Lighttpd的错误日志有这两行,表明它确实试图连接到fcgi进程。

2012-02-28 08:48:49: (mod_fastcgi.c.3071) got proc: pid: 0 socket: tcp:127.0.0.1:9030 load: 1 
2012-02-28 08:48:49: (mod_fastcgi.c.1492) released proc: pid: 0 socket: tcp:127.0.0.1:9030 load: 0 

有没有人知道可能出现的问题?我没有看到任何与fcgi相关的调试日志,即使我在启动fcgi的命令行选项中有debug = true。我是否需要做一些特殊的事情来查看来自fcgi进程的调试日志?

谢谢,感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我首先在lighthttpd的config启用调试,然后设置fastcgi.debug = 1

当您打开所有日志记录和调试时,请尝试访问该站点以将错误保存在日志中。然后,您需要检查主要的错误日志。

默认位置为/var/log/lighttpd/error.log