Django Broken pipe en mode Debug

J'ai django 1.3 sur le serveur distant derrière Nginx.

Si je lance django avec apache + mod_wsgi, je peux regarder les erreurs dans les fichiers de log d'apache. C'est ok, mais j'aimerais avoir dans la console.

Si je lance django propre serveur de développement, j'ai des erreurs avec stacktrace en console uniquement lorsque DEBUG = False. En mode DEBUG console sorties

Exception happened during processing of request from (..., ...)
Traceback (most recent call last):
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 310, in process_request
    self.finish_request(request, client_address)
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/local/python/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 570, in __init__
    BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/local/python/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/local/python/lib/python2.7/socket.py", line 301, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe

Je veux comprendre pourquoi? Pourquoi django juste sortie sans nom d'Exception? Pourquoi est-il dépendent de la variable DEBUG.

Cette erreur se produit surtout des vues sur l'extérieur quand je n'ai pas accès à l'objet de demande. Donc, je ne peux pas l'attraper dans l'intergiciel (middleware ou de l'utilisation de la journalisation gestionnaire.

Mise à JOUR. J'ai remarqué que si je demande à django directement le serveur je n'ai jamais Cassé la pipe. Donc, la question peut se produire alors que proxy Nginx django?

  • Je n'ai pas eu ce problème sur un serveur en ligne, mais il se produit de temps en temps sur le serveur de développement de django sur mon ordinateur local.. je n'ai pas été en mesure de résoudre ce soit
  • Il pourrait juste être NGINX expirer avant que django envoie la réponse. Quel est le "proxy_read_timeout" est activée dans votre nginx.fichier conf?
InformationsquelleAutor San4ez | 2011-10-27