NPM(Nginx Proxy Manager) 동작 흐름과 역할

LeeYulhee·2023년 10월 27일
2
post-thumbnail

👉 NPM의 역할


  • 리버스 프록시(Reverse Proxy, 역방향 프록시) 설정
    • 클라이언트와 서버 사이에서 중개자 역할을 하며, 클라이언트의 요청을 받아 그 요청에 해당하는 서버로 전달하고, 서버의 응답을 다시 클라이언트에게 전달하는 역할
  • 도메인 별 포워딩
    • 여러 도메인이나 서브도메인에 대한 요청을 각각 다른 내부 서비스나 컨테이너로 전달하는 설정을 제공
  • 접근 제어
    • 일부 IP 주소나 사용자에게만 서비스 접근을 허용하거나 차단하는 기능을 제공
  • SSL/TLS 관리
    • Let's Encrypt와 같은 SSL 인증서 발급 기관과 연동하여, SSL 인증서의 자동 발급 및 갱신을 지원



👉 NPM 요청 처리 흐름도




👉 NPM 요청 처리 : 1. 도메인 입력


  • 브라우저 주소창에 http://www.example.co.kr을 입력
    • = www.example.co.kr:80
    • http://는 기본적으로 80 포트를 사용
  • 브라우저 주소창에 https://www.example.co.kr을 입력
    • = www.example.co.kr:443
    • https://는 기본적으로 443 포트를 사용



👉 NPM 요청 처리 : 2. DNS에서 조회


  • DNS에서 해당 도메인에 대한 IP 주소를 조회



👉 NPM 요청 처리 : 3. IP 주소(서버)의 해당 포트에 요청 전달


  • http://를 사용하는 요청은 서버의 80 포트, https://를 사용하는 요청은 443 포트로 전달
  • 서버의 80,81포트와 443 포트가 NPM 컨테이너로 포워딩 설정되어 있음
    • 이 부분은 NPM 컨테이너를 실행할 때 설정한 부분



👉 NPM 요청 처리 : 4. 요청 들어온 도메인 주소를 확인하고 포워딩


  • 도메인을 보고 NPM에 등록한 도메인과 맞는 포트(서비스)에 포워딩
    • www.example.co.kr 도메인으로 들어오면 Host 도커의 8080 포트로 포워딩
    • special.example.co.kr 도메인으로 들어오면 Host 도커의 81 포트로 포워딩
profile
공부 중인 신입 백엔드 개발자입니다

0개의 댓글