2014-10-23 5 views
1

Настройка Django ALLOWED_HOSTS, если установлена ​​на другой хост, чем браузер подключается, просто вызывает 400, без указания проблемы.Параметр ALLOWED_HOSTS настройки не дает понятных ошибок

DEBUG = False 
ALLOWED_HOSTS = ['example.com'] 

Если вы попали Джанго, подключив прямо к IP, а не через example.com, вы получите простой 400 страницы.

Это происходит (как задокументировано) с DEBUG = FALSE, но это происходит через wsgi и через manage.py.

Это заняло у меня гораздо больше времени, чем я должен признать, что отлаживаю.

Где вывод отладки, который мог бы спасти меня от этой неопределенной ошибки? Должна ли, по крайней мере, информация manage.py давать подсказку?

страница просто говорит 400 Bad Request и журнал:

1.2.3.4 - - [23/Oct/2014 11:33:22] "GET/HTTP/1.1" 400 26 
+0

Я бы посоветовал вам настроить проект Django для отправки вам электронных писем каждый раз, когда генерируется исключение. https://docs.djangoproject.com/ru/dev/ref/settings/#admins –

ответ

2

Да, Django журналы ошибок.

[ERROR] [2014-10-23 12:46:06,073] [base 6808 140062533326784] [Invalid HTTP_HOST header: 'whatver.host'.You may need to add u'whatever_host' to ALLOWED_HOSTS.] 

Вот пример конфигурации журнала. вы должны регистрировать ошибки Djanogo, если вы хотите отлаживать что-либо.

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'error_file': { 
      'level': 'ERROR', 
      'filename': os.path.join(LOG_PATH, 'error.log'), 
      'class':'logging.handlers.RotatingFileHandler', 
      'maxBytes': 1 * 1024 * 1024, 
      'backupCount': 2 
     } 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['error_file'], 
      'level': 'ERROR', 
      'propagate': True 
     } 
    } 
} 
+0

Спасибо. Мой журнал (см. Обновленный вопрос) не говорит, что это от установки vanilla django – 0atman

+0

Aha, поэтому вывод по умолчанию для manage.py не дает всех ошибок? – 0atman

+0

Он будет записывать их в stdout при использовании сервера-запуска, но, предположительно, у вас никогда не было этой проблемы с использованием сервера-сервера, потому что DEBUG будет True. вам нужно будет настроить регистратор для захвата этой информации при работе в другом месте. –

Смежные вопросы