• [Django] DisallowedHost 오류 Invalid HTTP_HOST
    프로그래밍/Python 2021. 6. 7. 21:44
    728x90

    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']

    728x90

    댓글

Copyright ⓒ syudal.tistory.com