규도자 개발 블로그
django settings.py의 ALLOWED_HOSTS와 상용환경에서의 테스트 본문
django settings.py의 ALLOWED_HOSTS와 상용환경에서의 테스트
DEBUG가 True일 땐 ALLOWED_HOSTS에 자동으로 ['localhost', '127.0.0.1', '[::1]']
가 적용되어 내가 돌려보고 내컴퓨터에서 들어가는 것이므로 윈도우나 맥 등에서의 개발환경에서는 사이트의 작동을 확인할 수 있지만 서버환경, 그러니까 외부에 노출된 IP가 있는 환경에서는 이렇게 돌려볼 순 있어도 서버 자체에서 브라우저를 설치해 들어가보지 않는 이상 확인해볼 방법이 없다.
그럼에도 불구하고 python manage.py runserver
명령어를 통해 외부 브라우저에서 확인할 수 있는 방법이 있는데 뒤에 0.0.0.0:80이라는 주소와 포트번호를 붙이면 된다. 만들어진 명령어는 python manage.py runserver 0.0.0.0:80
이 된다. 이러면 외부에 노출돼있는 주소를 통해 서버에 접속해볼 수 있는데 DEBUG가 True이므로 보안에 일단 주의하도록 하자. 왜냐. ALLOWED_HOSTS에 해당 서버의 주소를 추가하지 않으면 오류가 날 뿐더러 수많은 에러메시지로 인해 서버의 많은 상태가 노출되기 때문이다. DEBUG가 True이면 위에 말했던 ['localhost', '127.0.0.1', '[::1]']만 들어가게 되므로 ALLOWED_HOSTS에 현재 ip address가 없다고 DisallowedHost Exception을 뱉을 것이다.
상용환경에서 gunicorn이나 uwsgi를 셋팅하고 nginx나 apache를 통해 테스트하기엔 시간이 조금 소요되니 그전에 간단하게 테스트를 원한다면 setting.py의 ALLOWED_HOSTS에 deploy를 원하는 주소를 넣어두고 python manage.py runserver 0.0.0.0:80
명령어를 통해 실험을 해볼 수 있다는 것이 이 글의 요지이다.
'Python > Django' 카테고리의 다른 글
Django로 개발할 때 꼭 주의해야할 점 (0) | 2020.02.13 |
---|---|
django에서 object queryset을 여러 기준으로 ordering하기 + object filter의 order_by 기준을 동적으로 구성하기. (2) | 2020.01.09 |
django project에 contribute할 내용 (url dispatcher에 대한 건) (0) | 2019.11.18 |
Django Template에서 List사용하기 (1) | 2019.10.24 |
간단한 react JS + Django 어플리케이션 만들기 (43) | 2018.12.22 |