Используя nginx/fcgi/django, у меня есть сообщения формы, которые дают тайм-аут шлюза 504.

У меня есть приложение, которое использует Django с FCGI на nginx. Я использую сторонние приложения, такие как django-registration Джеймса Беннета и django-сообщения из проекта Pinax. Оба этих приложения имеют формы, которые отправляются и сохраняют данные в базу данных, а затем перенаправляют на новый URL-адрес.

Моя проблема заключается в том, что метод .save() в любой из форм в этих приложениях вызывает тайм-аут шлюза 504 при отправке форм. Все данные сохраняются в базе данных, как и должно быть, однако ни один из них, похоже, никогда ничего не возвращает в приложение после сохранения формы.

Я сделал несколько журналов в разных точках кода, и ошибок нет. Это как если бы методы save() в форме или моделях, к которым подключены формы, просто никогда ничего не возвращали — ошибку или что-то еще.

С таким отсутствием деталей ответ может быть для меня мечтой, но просто толчок в правильном направлении или способ более полной диагностики проблемы был бы фантастическим.


person aezell    schedule 10.02.2010    source источник
comment
вы когда-нибудь получали ответ на это? я вижу то же самое в Ubuntu при отправке одной записи через экраны администратора с пустой базой данных   -  person mjallday    schedule 15.04.2011


Ответы (2)


Обычно ошибки 504 в nginx возникают из-за тайм-аута между nginx и процессом fastcgi. Возможно, вы захотите взглянуть на свои настройки nginx и настроить fastcgi_read_timeout?

Ваш журнал ошибок nginx обычно содержит немного больше информации о том, почему что-то не работает. Если вы используете дистрибутив * nix, он обычно находится в «/var/log/nginx/error.log».

person Owen    schedule 10.02.2010
comment
Вечером изменю этот параметр и посмотрю, в чем разница. Странно, что работа, выполняемая в коде, где происходят тайм-ауты, не такая уж серьезная и трудоемкая. В некоторых случаях это сохранение одной формы модели, а затем возврат. Спасибо за указатель. Я сообщу вам результаты. - person aezell; 11.02.2010

Оказывается, проблема была совершенно не связана с nginx, а заключалась в том, что у Django был тайм-аут при попытке отправить электронное письмо. К сожалению, он не выдает сообщения об ошибке или какого-либо указания на то, что он не может подключиться к почтовому серверу.

person aezell    schedule 16.02.2010