У меня есть django 1.3 на удаленном сервере за Nginx.
Если я запускаю django с apache + mod_wsgi, я могу наблюдать ошибки в файлах журнала apache. Это нормально, но я хотел бы иметь консоль.
Если я запускаю собственный сервер разработки django, я получаю ошибки с помощью stacktrace в консоли только тогда, когда DEBUG = False. В режимах консоли 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
Я хочу выяснить, почему? Почему django просто выводит неназванное исключение? Почему это зависит от переменной DEBUG.
Эти ошибки возникают в основном из внешних представлений, когда у меня нет доступа к объекту запроса. Поэтому я не могу поймать его в промежуточном программном обеспечении или с помощью обработчика ведения журнала.
UPDATE. Я заметил, что если я запрошу сервер django напрямую, я никогда не получаю Broken pipe. Так может возникнуть проблема, когда Nginx proxy django?