我有一个运行良好的Web应用程序已经运行了几个月相当稳定,但每次我们都看到django应用程序停止响应,而lighttpd服务器开始喷出500个错误。
/var/log/lighttpd/error.log看起来像:
2011-03-06 18:20:17: (server.c.1469) server stopped by UID = 0 PID = 32106
2011-03-06 18:20:18: (log.c.97) server started
2011-03-08 03:13:12: (mod_fastcgi.c.2494) unexpected end-of-file (perhaps the fastcgi process died): pid: 0 socket: unix:/opt/app/var/app.sock
2011-03-08 03:13:12: (mod_fastcgi.c.3326) response not received, request sent: 608 on socket: unix:/opt/app/var/app.sock for /app.fcgi , closing connection
然后只重复最后两行,直到我重启django应用程序才能看到。
我们已将应用程序设置为通过电子邮件向我们发送500条错误的堆栈跟踪信息,但不会在此问题开始时向其发送电子邮件。
lighttpd.conf的fcgi部分如下所示:
fastcgi.server = (
"/" + project-name + ".fcgi" => (
"main" => (
"socket" => project-root + "/var/" + project-name + ".sock",
"check-local" => "disable",
"min-proces" => 4,
"max-load-per-proc" => 3,
"broken-scriptfilename" => "enable",
)
),
)
有没有人对如何追踪正在发生的事情有任何想法?我怀疑我们在lighttpd和我们的应用程序之间存在一些问题,或者应用程序可能会做错误导致这种情况发生,但我现在不知道在哪里看。
答案 0 :(得分:0)
您是否尝试在django应用程序中进行一些调试以查看套接字在该方面正在做什么?据推测,它确实看到了请求,但没有响应?
你得到的错误发生在fcgi_demux_response()中 - 基本上Lighttpd没有响应......