NGINX Proxy Manager란?
NGINX Proxy Manager(NPM)은 NGINX 기반의 Reverse Proxy를 GUI로 쉽게 관리할 수 있도록 도와주는 오픈소스 소프트웨어입니다.
주로 도메인 기반 리버스 프록시 설정, SSL 인증서 관리, 액세스 제어 등을 간편하게 설정할 수 있도록 지원합니다.
1. 주요 기능
✅ 리버스 프록시 (Reverse Proxy)
- 여러 개의 내부 서비스(웹 애플리케이션, API 서버 등)에 대해 도메인 기반 요청 라우팅이 가능
- 내부 서비스들을 외부에 직접 노출하지 않고 보안성을 강화할 수 있음
- 부하 분산(Load Balancing) 기능을 활용하여 트래픽을 효율적으로 분산 가능
✅ Let's Encrypt SSL 인증서 자동 발급 및 관리
- Let's Encrypt와 연동하여 무료 SSL 인증서 발급 가능
- 인증서를 자동 갱신하여 보안성을 유지
✅ 웹 기반 GUI 관리 인터페이스
- CLI(명령어 입력) 없이 웹 UI에서 간단하게 설정 가능
- 직관적인 설정 화면을 제공하여 비개발자도 쉽게 사용 가능
✅ 접속 제어 및 보안 기능
- IP 기반 접근 제한 및 기본 인증(Basic Authentication) 제공
- 특정 IP 또는 CIDR 대역을 차단할 수 있어 보안 강화 가능
✅ Docker 환경에서 손쉬운 배포
- Docker Compose를 활용해 간단하게 배포 가능
- 컨테이너 기반으로 여러 서비스와 쉽게 연동 가능
2. NGINX Proxy Manager 동작 방식
- 클라이언트가 특정 도메인으로 요청을 보냄 (예:
https://example.com
)
- NGINX Proxy Manager가 해당 도메인과 매칭되는 백엔드 서버(서비스)로 요청을 전달
- 백엔드 서버에서 응답을 받은 후, 다시 NGINX Proxy Manager를 통해 클라이언트에게 응답 반환
- SSL 처리, 인증, 접근 제한 등 추가 기능이 적용됨
3. 설치 방법 (Docker 기반)
1) docker-compose.yml
파일 생성
version: '3'
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Seoul
- DB_SQLITE_FILE=/data/database.sqlite
2) Docker 컨테이너 실행
docker-compose up -d
3) NGINX Proxy Manager 웹 UI 접속
http://서버IP:81
로 접속하여 로그인
(초기 로그인 계정: admin@example.com / changeme
)
4) 프록시 호스트 추가
- "Proxy Hosts" 메뉴에서 새 프록시 호스트 추가
- 도메인 입력 후 백엔드 서버 IP와 포트 지정
- 필요 시 SSL 활성화 후 적용
4. 활용 사례
🚀 1) 여러 개의 웹 서비스 운영
- 하나의 서버에서 여러 개의 웹 애플리케이션을 운영할 때 도메인 기반으로 라우팅 가능
예를 들어:
app1.example.com
→ 192.168.1.10:3000
app2.example.com
→ 192.168.1.10:4000
api.example.com
→ 192.168.1.10:5000
🔒 2) 내부 서버 보안 강화
- 외부에서 직접 내부 서비스로 접근하는 것을 차단하고,
NGINX Proxy Manager를 통해서만 접근하도록 설정
🌍 3) Let's Encrypt SSL 무료 인증서 적용
- 자동으로 SSL을 발급받고 HTTPS 적용하여 보안성 강화
🛠 4) 여러 개의 Docker 컨테이너 간 Reverse Proxy 설정
- 각 서비스가 개별 컨테이너에서 실행될 경우,
컨테이너 이름을 이용하여 쉽게 프록시 설정 가능
5. NGINX Proxy Manager vs Nginx 직접 설정
기능 | NGINX Proxy Manager | NGINX 직접 설정 |
---|
설정 방식 | 웹 UI (GUI) | CLI (터미널) |
SSL 인증서 발급 | 자동 발급 (Let's Encrypt 연동) | 수동 설정 필요 |
리버스 프록시 | 간편한 설정 | 직접 nginx.conf 작성 필요 |
접근 제어 | UI에서 손쉽게 설정 가능 | 직접 설정 파일 편집 필요 |
유지보수 | 쉬움 | 설정 변경 시 재배포 필요 |
6. 결론
NGINX Proxy Manager는 NGINX의 강력한 기능을 손쉽게 관리할 수 있도록 도와주는 도구입니다.
Docker 환경에서 빠르게 배포 가능하며, SSL 인증서 관리, 리버스 프록시, 보안 설정 등을 간편하게 할 수 있습니다.