[Python, Django] DisallowedHost 오류 Invalid HTTP_HOST 해결하기
카테고리: Python
DisallowedHost
DisallowedHost 오류는 Django 웹 프레임워크에서 발생하는 일반적인 오류 중 하나이다. 이 오류는 보안상의 이유로 Django 애플리케이션이 허용되지 않은 호스트에서 요청을 받았을 때 발생한다.
문제 상황
django에 도메인을 연결해서 외부 테스트를 하려고 하면, DisallowedHost 라는 메시지가 뜨면서 연결이 되지 않는다.
문제 원인
이는, 디버깅 모드에서 ALLOWED_HOSTS 변수가 빈 리스트일 경우 [‘localhost’, ‘127.0.0.1’, ‘[::1]’] 의미가 되어 로컬 호스트에서만 접속이 가능하다.
디버깅 모드를 해제하면 일체 접속이 허용되지 않고 명시적으로 지정한 호스트에만 접속할 수 있다.
수정하기 위해서는 settings.py를 수정하여 ALLOWED_HOSTS에 해당 도메인 주소를 명시하여야 하는데, 여러 폴더가 있다면 settings.py를 찾기엔 쉽지 않다.
해당 오류 메시지를 조금 스크롤하면 아래와 같은 창이 나오며 해당 문제가 발생한 폴더를 보여준다.
DJANGO_SETTINGS_MODULE를 보면 해당 폴더의 모듈에서 해당 문제가 발생했음을 알 수 있다.
해결 방안
해당 모듈의 settings.py 위치를 파악한 후 해당 파일을 열어 아래와 같이 수정하면 성공적으로 접속된다.
ALLOWED_HOSTS = ['해당 도메인', 'localhost']