Ho django 1.3 sul server remoto dietro Nginx.Django Tubo rotto in modalità di debug
Se eseguo django con apache + mod_wsgi, posso controllare gli errori nei file di registro di apache. Va bene, ma mi piacerebbe avere in console.
Se eseguo il proprio server di sviluppo django, ottengo errori con stacktrace in console solo quando DEBUG = False. Uscite della console in modalità DEBUG
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
Voglio capire perché? Perché django emette solo un'eccezione senza nome? Perché dipende dalla variabile DEBUG.
Questi errori si verificano principalmente viste esterne quando non ho accesso all'oggetto richiesta. Quindi non riesco a prenderlo nel middleware o utilizzando il gestore di registrazione.
AGGIORNAMENTO. Ho notato che se ho richiesto direttamente al server django non ho mai ricevuto Broken pipe. Quindi il problema potrebbe verificarsi mentre il proxy Nginx django?
non ho avuto questo problema su un server live, tuttavia si verifica di tanto in tanto sul server dev django sul mio computer locale. Non sono stato in grado di risolvere questo problema –
Potrebbe essere solo il timeout NGINX prima che django invii la risposta. Qual è il "proxy_read_timeout" impostato nel tuo file nginx.conf? – Nils