[고급] 역방향 프록시(Nginx Proxy Manager)로 여러 서비스 깔끔하게 연결하기
안녕하세요! 지금까지 우리는 넥스트클라우드, 젤리핀, 넷데이터 등 다양한 서비스를 설치해 왔습니다. 하지만 접속할 때마다 주소:8080, 주소:8096처럼 포트 번호를 일일이 기억해서 입력하는 것은 무척 번거로운 일입니다. 보안상으로도 여러 포트를 외부에 개방하는 것은 위험 요소가 따르죠.
오늘은 이 모든 고민을 한 방에 해결해 줄 마법의 도구, 역방향 프록시(Reverse Proxy)를 배워보겠습니다. 그중에서도 가장 직관적인 GUI를 제공하는 Nginx Proxy Manager(NPM)를 이용해, 단 하나의 443(HTTPS) 포트만으로 모든 서비스를 깔끔하게 분류하고 연결하는 법을 공개합니다.
1. 역방향 프록시(Reverse Proxy)란 무엇인가?
쉽게 비유하자면 '호텔의 로비 매니저'와 같습니다. 손님(사용자)이 호텔에 와서 "젤리핀 방으로 가고 싶어요"라고 말하면, 매니저(NPM)가 손님의 요청을 듣고 해당 서비스가 있는 내부 방(포트)으로 안내해 주는 방식입니다.
- 사용자:
video.yourdomain.com으로 접속 시도 (포트 번호 입력 안 함) - NPM: "아, 비디오 서비스구나? 내부의 8096 포트로 연결해 줄게!"
- 결과: 사용자는 포트 번호를 몰라도 되고, 서버는 오직 80(HTTP)과 443(HTTPS) 포트만 열어두면 됩니다.
2. 왜 Nginx Proxy Manager(NPM)인가?
기본 Nginx는 텍스트 설정 파일을 직접 수정해야 해서 초보자에게는 '통곡의 벽'과 같습니다. 하지만 NPM은 다음과 같은 강력한 장점을 제공합니다.
- 웹 GUI 지원: 마우스 클릭 몇 번으로 도메인 연결과 SSL 발급이 끝납니다.
- 자동 SSL 갱신: Let's Encrypt 인증서를 버튼 하나로 발급받고, 알아서 갱신까지 해줍니다.
- 보안 강화: 특정 서비스에만 추가 비밀번호를 걸거나, 특정 IP만 접속하게 제한할 수 있습니다.
3. 실전: Docker Compose로 NPM 설치하기
NPM은 데이터베이스를 포함하므로 아래와 같이 구성합니다.
[1단계: 작업 디렉토리 생성]
mkdir -p ~/npm && cd ~/npm
nano docker-compose.yml
[2단계: 설정 파일(YAML) 작성]
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # HTTP
- '81:81' # 관리 페이지
- '443:443' # HTTPS
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
[3단계: 가동 및 접속]
docker compose up -d
이제 서버IP:81로 접속합니다. 초기 계정은 admin@example.com / changeme입니다. 접속 후 바로 이메일과 비밀번호를 수정하세요.
4. 서비스 연결하기 (Proxy Host 설정)
이제 젤리핀(8096 포트)을 video.yourdomain.com으로 연결해 보겠습니다.
- NPM 대시보드에서 'Proxy Hosts' -> 'Add Proxy Host'를 클릭합니다.
- Domain Names:
video.yourdomain.com입력 - Forward Hostname / IP: 서버의 내부 사설 IP (또는 도커 네트워크의 서비스명) 입력
- Forward Port:
8096입력 - SSL 탭: 'Request a new SSL Certificate' 선택 및 'Force SSL' 체크
저장을 누르면 잠시 후 인증서 발급이 완료되며, 이제 전 세계 어디서든 포트 번호 없이 도메인만으로 내 영화관에 접속할 수 있습니다!
5. 마치며: 홈서버의 완성, 그리고 새로운 시작
포트 번호를 지우고 나만의 도메인으로 서비스를 운영하는 순간, 여러분의 홈서버는 더 이상 '공부용 장비'가 아닙니다. 상용 서비스와 어깨를 나란히 하는 '완성된 플랫폼'입니다. 깔끔하게 정리된 주소창을 보며 그동안의 노력을 만끽해 보세요.
다음 편(마지막 회)에서는 이 모든 대장정을 마무리하며, 서버를 더욱 스마트하게 활용할 수 있는 '추천 오픈소스 서비스 Top 5'와 앞으로의 공부 방향을 제시해 드리겠습니다. 고생 많으셨습니다!
[핵심 요약]
- 역방향 프록시는 외부 요청을 받아 내부의 적절한 서비스(포트)로 전달해 주는 관문 역할을 합니다.
- Nginx Proxy Manager(NPM)를 쓰면 GUI 환경에서 도메인 연결과 SSL 인증서 관리를 손쉽게 할 수 있습니다.
- 보안을 위해 외부에서는 오직 80, 443 포트만 개방하고 나머지는 NPM 뒤로 숨겨야 합니다.
- 서브도메인(예: cloud., video.)을 활용하면 하나의 도메인으로 수십 개의 서비스를 운영할 수 있습니다.
다음 편 예고: "[마무리] 홈서버 마스터로 가는 길: 추천 오픈소스 서비스 Top 5와 향후 과제" - 여러분의 서버를 채울 보물 같은 앱들을 소개합니다!
질문: 81번 관리 페이지 접속에 성공하셨나요? 첫 번째 도메인 연결에서 'Internal Error'가 발생한다면, 공유기에서 80번과 443번 포트가 서버로 포트 포워딩 되어 있는지 다시 확인해 보세요!
0 댓글