일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 소셜 로그인
- 예매
- WebRTC
- uvicorn
- nginx
- puppeteer
- EC2
- kotlin
- 직링
- Django
- AWS
- GPT
- 티켓링크
- 퍼피티어
- 일렉트론
- 로그인
- OAuth
- 자동화
- 피들러
- 티켓
- linux
- 자동화 도구
- 개발자 도구 우회
- 콘서트
- App
- WSL
- FastAPI
- fiddler
- selenium
- 개발자 도구
- Today
- Total
개발 삽질 일지
[Django] 서버 외부 공개하기 본문
이 글은 Django 개발 서버를 외부에서 접근 가능하게 만들고 싶은 분들을 위한 ngrok 설정 가이드입니다.
로컬에서 개발한 Django 웹을 친구에게 보여주거나, 테스트용 URL을 빠르게 생성하고 싶을 때 유용합니다. 저의 경우에는 QA에게 배포 전에 로컬 환경을 보여주기 힘들어서 찾은 대안이 ngrok이였습니다.
Ngrok이란?
ngrok은 로컬에서 실행 중인 웹 서버를 공개된 HTTPS 주소로 포워딩해주는 서비스입니다.
- 터널링(Tunneling) 기술 기반
- 개발용 Webhook 테스트, 모바일에서 로컬 서버 접근, 클라이언트에게 시연할 때 자주 사용됨
- HTTPS 보안 URL을 자동으로 생성해줌
- 배포하지 않고도 로컬 환경을 외부에 공개할 수 있음
즉, 배포 전, 로컬 서버를 외부에서 접속 가능하게 만들어주는 도구입니다.
실습: Ngrok으로 Django 외부 접속하기
ngrok 설치하기
ngrok 사이트에 접속해서 운영체제에 맞는 ngrok 파일을 다운받아야 합니다.
https://ngrok.com/downloads/windows
Download ngrok
Download ngrok
ngrok.com
파일 다운로드 후, 압축 풀고 ngrok.exe 파일 실행해줍니다.
ngrok 페이지에서 개인 토큰 복사
복사 후 ngrok.exe에 그대로 붙여넣기
Django 개발 서버 설정 변경
cmd에서 ipconfig를 통해 IPv4 주소를 확인하고, 개발 중인 Django settings.py에 추가해줍니다.
ALLOWED_HOSTS = [
'localhost',
'127.0.0.1',
'10.95.xxx.xxx', # 로컬 IP
'xxxxxxxx.ngrok-free.app' # ngrok 주소 매번 바뀜!
]
# ALLOWED_HOSTS = ["*"]
# ngrok 서버 주소까지 허용하려면
CSRF_TRUSTED_ORIGINS = ["https://*.ngrok-free.app"]
이후 Django 서버를 실행해주면 됩니다.
python manage.py runserver 10.95.xxx.xxx:8000
# python manage.py runserver 0.0.0.0:8000
ngrok으로 외부 접속 터널 열기
ngrok http 10.95.xxx.xxx:8000
# ngrok http 8000
이후, 출력된 https://xxxxx.ngrok-free.app 주소를 통해 외부에서도 로컬에 접속 가능해집니다.
참고로 테스트 중일 때는 위에 주석을 풀어서 다 허용해주는게 편합니다. 그렇지 않다면, 서버가 변경될 때마다 ngrok의 서버 도메인이 바뀌게 되고 settings.py 항목들을 매번 수정해줘야 합니다.
조금 번거롭지만, 이 과정을 한번 익혀두면 실제 배포 전 외부 환경에서의 작동을 검증해볼 수 있습니다.