Django / Lighttpd перестает отвечать и возвращает 500 ошибок - PullRequest
1 голос
/ 08 марта 2011

У меня есть довольно хорошо себя зарекомендовавшее себя веб-приложение, которое работает довольно стабильно в течение нескольких месяцев, но каждый раз мы видели, как приложение 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 ошибок, что оно и делает, но не при возникновении этой проблемы.

Раздел fcgi файла lighttpd.conf выглядит следующим образом:

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 и нашим приложением, или, возможно, приложение делает что-то неправильно, что вызывает это, но я не знаю, где искать сейчас.

1 Ответ

0 голосов
/ 29 марта 2011

Вы пытались добавить отладку в приложение django, чтобы посмотреть, что сокет делает на этой стороне? Предположительно он видит поступающие запросы, но не отвечает?

Ошибка, которую вы получаете, происходит в fcgi_demux_response () - в основном Lighttpd не получает ответа ....

...