Django Сломанный канал в режиме отладки

У меня есть django 1.3 на удаленном сервере за Nginx.

Если я запускаю django с apache + mod_wsgi, я могу отслеживать ошибки в файлах журнала apache. Это нормально, но я бы хотел, чтобы в консоли.

Если я запускаю собственный сервер разработки django, я получаю ошибки с трассировкой стека в консоли, только если 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.

Эта ошибка возникает в основном вне представлений, когда у меня нет доступа к объекту запроса. Поэтому я не могу поймать это в промежуточном программном обеспечении или с помощью обработчика журналов.

ОБНОВЛЕНИЕ. Я заметил, что если я напрямую запрашиваю сервер django, я никогда не получаю Broken pipe. Так может ли проблема возникнуть во время прокси-сервера Nginx django?

48
задан San4ez 28 October 2011 в 06:41
поделиться