카테고리:

1 분 소요

DisallowedHost

DisallowedHost 오류는 Django 웹 프레임워크에서 발생하는 일반적인 오류 중 하나이다. 이 오류는 보안상의 이유로 Django 애플리케이션이 허용되지 않은 호스트에서 요청을 받았을 때 발생한다.

문제 상황

django에 도메인을 연결해서 외부 테스트를 하려고 하면, DisallowedHost 라는 메시지가 뜨면서 연결이 되지 않는다.

DisallowedHost라는 메시지가 뜨며 연결이 되지 않은 화면

문제 원인

이는, 디버깅 모드에서 ALLOWED_HOSTS 변수가 빈 리스트일 경우 [‘localhost’, ‘127.0.0.1’, ‘[::1]’] 의미가 되어 로컬 호스트에서만 접속이 가능하다.

디버깅 모드를 해제하면 일체 접속이 허용되지 않고 명시적으로 지정한 호스트에만 접속할 수 있다.

수정하기 위해서는 settings.py를 수정하여 ALLOWED_HOSTS에 해당 도메인 주소를 명시하여야 하는데, 여러 폴더가 있다면 settings.py를 찾기엔 쉽지 않다.

해당 오류 메시지를 조금 스크롤하면 아래와 같은 창이 나오며 해당 문제가 발생한 폴더를 보여준다.

오류 메시지를 통해 setting.py를 찾는 방법

DJANGO_SETTINGS_MODULE를 보면 해당 폴더의 모듈에서 해당 문제가 발생했음을 알 수 있다.

해결 방안

해당 모듈의 settings.py 위치를 파악한 후 해당 파일을 열어 아래와 같이 수정하면 성공적으로 접속된다.

ALLOWED_HOSTS = ['해당 도메인', 'localhost']

태그: ALLOWED_HOSTS, DisallowedHost, Django, DJANGO_SETTINGS_MODULE, Dpmain, HTTP_HOST, Python, settings.py, 도메인

업데이트: