CommandError : DEBUG가 False 인 경우 settings.ALLOWED_HOSTS를 설정해야합니다.


109

내 프로그램 txsite에서 설정으로 Django 1.6.5를 사용합니다.

DEBUG = True

DEBUG를 False로 설정했지만 runserver다음과 같은 오류가 발생합니다.

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False

설정을 시도 ALLOWED_HOSTS = ['127.0.0.1', 'localhost']했지만 동일한 오류가 발생합니다.

아무도 그것을 알아내는 방법을 알고 있습니까?


아래에서 다시 정의했는지 확인하십시오. DEBUG = True. 그것은 단지 나쁜 카피 페이스트 일 수 있습니다. 실수로 DEBUG = False를 취소했기 때문에 여기에 왔습니다
Tms91

답변:


153

시험

ALLOWED_HOSTS = ['*']

방화벽이 없거나 공용 LAN에 있지 않은 경우 보안 수준이 떨어지지 만 내가 사용하고 작동합니다.

편집 : 흥미롭게도 나는 .NET에서도 1.8 프로젝트 중 몇 개에 이것을 추가해야했습니다 DEBUG = True. 이유를 잘 모르겠습니다.

편집 : 이것은 내 의견에 언급 된 Django 보안 업데이트 때문입니다.


코드를 낭비하지 않으려면 코드를 어디에 올바르게 입력해야합니까?
Малъ Скрылевъ jul.

4
수행 grep ALLOWED_HOSTS . -ri올바른 파일을 찾을 프로젝트의 머리 폴더에. 이 경우 settings.py이지만 grepping은 항상 좋은 조언입니다.
Harald Nordgren 2016

이것을 어떤 파일에 써야합니까?
Mona Jalal

@MonaJalal은 Harald의 의견을 참조하십시오.
Kye Russell

1
[Django docs] [1]에 따르면의 동작은 ALLOWED_HOSTSDNS 리 바인딩 공격을 해결하기 위해 수정되었으며 앞으로도 필요할 것입니다. [1] : docs.djangoproject.com/en/1.10/ref/settings/#allowed-hosts
Kye Russell

55

솔루션은 원래 IP 및 / 또는 호스트 이름을 추가하는 것입니다.

ALLOWED_HOSTS = ['localhost', '127.0.0.1', '111.222.333.444', 'mywebsite.com']

만족되는 조건은 호스트 헤더 (또는 그 X-Forwarded-Host경우USE_X_FORWARDED_HOST 활성화 된 )가의 값 중 하나와 일치해야한다는 것입니다 ALLOWED_HOSTS.


2
이것을 구성한 후, 좋은 예전 재시작이 저에게
효과적

28

settings.py에서 다시 정의되지 않았는지 확인하십시오. 기본 설정은 다음과 같습니다.

ALLOWED_HOSTS = []


1
오류 메시지는 이것을 찾는 데 도움이됩니다. 게시 해 주셔서 감사합니다.
scharfmn



1

당신이 작업하는 경우 PyCharm는을 확인 Environmental variables당신을 위해 Django server. 적절한 module.settings파일을 지정해야 합니다.


-8

간단히 줄을 주석 처리하십시오. ALLOWED_HOSTS = [...]


의견이 있으면 어디로 리디렉션할지 어떻게 알 수 있습니까?
cdrrr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.