반응형
Django에서 기본 포트 번호 변경 및 외부 접속 허용 방법
소개
Django를 사용하여 웹 애플리케이션을 개발할 때, python manage.py runserver
명령어는 개발자가 로컬 환경에서 애플리케이션을 테스트할 수 있는 개발 서버를 제공합니다. 기본적으로 이 서버는 포트 번호 8000에서 실행되며, 로컬 호스트(127.0.0.1)에서만 접근이 가능합니다. 그러나 개발 과정에서 다음과 같은 상황이 발생할 수 있습니다:
- 포트 8000이 이미 다른 애플리케이션에서 사용 중일 때
- 동시에 여러 Django 프로젝트를 실행해야 할 때
- 모바일 기기나 다른 컴퓨터에서 개발 중인 애플리케이션을 테스트해야 할 때
이러한 경우를 위해 포트 번호를 변경하고 외부 접속을 허용하는 방법을 알아보겠습니다.
포트 번호 변경하기
기본 방법
기본 포트 번호인 8000을 다른 번호로 변경하려면 runserver
명령어 뒤에 원하는 포트 번호를 지정하면 됩니다.
python manage.py runserver 8080
- 설명: 위 명령어는 Django 개발 서버를 포트 번호 8080에서 실행합니다.
- 접속 방법: 웹 브라우저에서
http://localhost:8080/
또는http://127.0.0.1:8080/
을 입력하여 서버에 접속할 수 있습니다.
외부 접속 허용하기
기본 설정 방법
개발 서버를 외부 기기에서 접근 가능하도록 설정하려면, 호스트 주소를 0.0.0.0
으로 지정해야 합니다.
python manage.py runserver 0.0.0.0:8000
- 설명: 위 명령어는 모든 IP 주소에서 Django 개발 서버에 접근할 수 있도록 설정합니다.
- 접속 방법: 로컬 네트워크 내의 다른 기기에서
http://[서버_IP_주소]:8000/
을 통해 접속할 수 있습니다.
settings.py 설정 변경
외부 접속을 허용하려면 settings.py
파일의 ALLOWED_HOSTS
설정도 변경해야 합니다.
# settings.py
# 개발 환경에서만 사용할 경우
ALLOWED_HOSTS = ['*']
# 또는 특정 IP만 허용할 경우
ALLOWED_HOSTS = ['127.0.0.1', '192.168.0.100', '서버_IP_주소']
- 설명:
ALLOWED_HOSTS
에'*'
를 추가하면 모든 호스트에서의 접근을 허용합니다. - 주의: 프로덕션 환경에서는 보안을 위해 특정 호스트만 허용하는 것이 좋습니다.
자신의 IP 주소 확인 방법
Windows에서:
ipconfig
Mac/Linux에서:
ifconfig
또는
ip addr
보안 고려사항
개발 서버의 제한사항
Django의 개발 서버는 개발 목적으로만 설계되었으며, 다음과 같은 제한사항이 있습니다:
- 보안 설정이 최적화되어 있지 않음
- 성능이 프로덕션 서버에 비해 떨어짐
- 동시 접속자가 많을 경우 안정성이 떨어짐
문제 해결
포트 충돌 문제
이미 사용 중인 포트 번호를 확인하는 방법:
Windows에서:
netstat -ano | findstr :8000
Mac/Linux에서:
lsof -i :8000
자주 발생하는 오류
- "That port is already in use": 해당 포트가 이미 사용 중입니다. 다른 포트를 사용하거나 기존 프로세스를 종료하세요.
- "You don't have permission to access this port": 권한 문제입니다. 1024 이하의 포트는 관리자 권한이 필요할 수 있습니다.
- "Invalid HTTP_HOST header":
ALLOWED_HOSTS
설정을 확인하세요.
참고 자료
반응형
'Python > Django' 카테고리의 다른 글
django 테스트 기반 개발 환경을 위한 설치 (0) | 2015.04.19 |
---|---|
파이썬 가상환경 virtualenvwrapper 설정 (0) | 2015.01.29 |
django 설치 (0) | 2015.01.29 |