ngrok에 관하여

윤형·2024년 11월 11일

Django

목록 보기
9/12

💡ngrok이란
로컬 네트워크에서 실행중인 웹 애플리케이션을 인터넷에서 접근 가능하도록 하는 "터널링" 서비스 입니다.
Django에서 로컬로 서버를 돌리고 다른 네트워크를 사용하고 있는 프론트와 협력할때 유용하게 사용할 수 있습니다.

ngrok의 주요 기능

  1. 로컬 서버를 퍼블릭 URL로 노출: ngrok은 로컬 서버에 대해 HTTP나 HTTPS로 접근할 수 있는 퍼블릭 URL을 생성해줍니다. 이를 통해 외부 사용자가 로컬 서버에 쉽게 접근할 수 있습니다.

  2. 보안과 인증 지원: ngrok은 SSL/TLS 암호화와 인증 기능을 제공하여 안전하게 외부에서 접근할 수 있도록 돕습니다.

  3. 다양한 프로토콜 지원: HTTP뿐만 아니라 TCP와 같은 다양한 프로토콜을 지원하기 때문에 웹 서버뿐만 아니라 다른 종류의 서버도 연결할 수 있습니다.

  4. 트래픽 분석 및 모니터링: ngrok 웹 대시보드에서는 들어오는 트래픽을 실시간으로 확인할 수 있으며, 이를 통해 디버깅과 테스트가 편리해집니다.

세팅 하기

# setting.py - CSRF 설정
NGROK_ADDRESS = "ngrok URL"
NGROK_URL = "https://" + NGROK_ADDRESS

BACKEND_ADDRESS = "127.0.0.1"
FRONTEND_ADDRESS = "192.168.35.183"

BACKEND_URL = "http://" + BACKEND_ADDRESS + ":8000"
FRONTEND_URL = "http://" + FRONTEND_ADDRESS + ":190000"

# CORS 설정
CORS_ALLOW_ALL_ORIGINS = True
# CORS_ALLOW_CREDENTIALS = True
CORS_ALLOWED_ORIGINS = [
    FRONTEND_URL,
    BACKEND_URL,
    NGROK_URL,
]

# CSRF 설정
CSRF_TRUSTED_ORIGINS = [
    FRONTEND_URL,
    BACKEND_URL,
    NGROK_URL,
]
  • CSRF_TRUSTED_ORIGINS는 CSRF 공격을 방지하기 위해 신뢰할 수 있는 출처를 설정하는 것이고

  • CORS_ALLOWED_ORIGINS는 CORS 정책에 따라 허용된 출처를 설정하는 것입니다.

즉, 이 설정에 포함된 출처에서 오는 요청은 CSRF검증을 통과할 수 있다.

명령어

ngrok http 8000

이 포스터는 https://github.com/jaehunshin-git 를 참고했습니다.

profile
제가 관심있고 공부하고 싶은걸 정리하는 저만의 노트입니다.

0개의 댓글