NGINX Proxy Manager

Kkd·2025년 3월 16일
0

매일메일 개념정리

목록 보기
93/93

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 동작 방식

  1. 클라이언트가 특정 도메인으로 요청을 보냄 (예: https://example.com)
  2. NGINX Proxy Manager가 해당 도메인과 매칭되는 백엔드 서버(서비스)로 요청을 전달
  3. 백엔드 서버에서 응답을 받은 후, 다시 NGINX Proxy Manager를 통해 클라이언트에게 응답 반환
  4. SSL 처리, 인증, 접근 제한 등 추가 기능이 적용됨

3. 설치 방법 (Docker 기반)

1) docker-compose.yml 파일 생성

version: '3'
services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - "80:80"      # HTTP
      - "81:81"      # 관리 페이지
      - "443:443"    # HTTPS
    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.com192.168.1.10:3000
    • app2.example.com192.168.1.10:4000
    • api.example.com192.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 ManagerNGINX 직접 설정
설정 방식웹 UI (GUI)CLI (터미널)
SSL 인증서 발급자동 발급 (Let's Encrypt 연동)수동 설정 필요
리버스 프록시간편한 설정직접 nginx.conf 작성 필요
접근 제어UI에서 손쉽게 설정 가능직접 설정 파일 편집 필요
유지보수쉬움설정 변경 시 재배포 필요

6. 결론

NGINX Proxy Manager는 NGINX의 강력한 기능을 손쉽게 관리할 수 있도록 도와주는 도구입니다.
Docker 환경에서 빠르게 배포 가능하며, SSL 인증서 관리, 리버스 프록시, 보안 설정 등을 간편하게 할 수 있습니다.

profile
🌱

0개의 댓글