시놀로지 NAS Docker에 NPM 설치 및 사용

시놀로지 NAS 는 개인 사용자와 소규모 비즈니스를 위한 강력하고 유연한 NAS(Network Attached Storage) 솔루션을 제공합니다.
이번 글에서는 시놀로지 NAS 내 Docker(Container Manager)를 통해 NPM(Nginx Proxy Manager)을 설치 및 사용법에 대해 설명 드리겠습니다.

NPM과 Docker ??

Nginx Proxy Manager는 Nginx를 기반으로 한 리버스 프록시 관리 도구로, 간편한 웹 인터페이스를 제공하여 다양한 서비스와 애플리케이션의 트래픽을 관리할 수 있습니다. Docker 컨테이너는 이러한 애플리케이션과 서비스를 격리된 환경에서 실행할 수 있게 해 줍니다. 시놀로지 NAS는 Docker 컨테이너를 손쉽게 관리할 수 있는 환경을 제공합니다.


Docker에 NPM(Nginx Proxy Manager) 설치


시놀로지 NAS에 Docker(Container Manager) 설치

Docker 설치


시놀로지 NAS의 패키지 센터에서 Docker를 설치하고 실행합니다. Docker가 실행되면 Container Manager를 통해 컨테이너를 생성할 수 있습니다.


NPM 설치 폴더 준비

시놀로지 File Station 에 npm 폴더와 하위에 data 폴더, letsencrypt 폴더 를 생성합니다.

NPM 설치 폴더 구성


Docker에 NPM 설치 이미지로 컨테이너 생성

Docker Hub에서 공식 Nginx Proxy Manager 이미지 다운로드합니다.
Container Manager를 통해 이 이미지를 사용하여 새로운 컨테이너를 생성합니다.
컨테이너 생성 시 포트 매핑과 볼륨 설정을 통해 Nginx Proxy Manager와 NAS 간의 데이터 연결을 설정합니다.

docker 패키지를 실행 ➝ 이미지 추가 ➝ URL에서 추가 입력 ➝ latest 선택하고 설치
URL: https://hub.docker.com/r/jc21/nginx-proxy-manager 

Docker에 NPM 이미지 추가


시놀로지 NAS Docker에 NPM 설치 및 사용 5


NPM 컨테이너 설정


NAS, Docker, NPM 연결 구조 및 포트 설정

NAS, Docker, NPM 연결 구조


Docker에 NPM 설치 PORT 구성 방식 예시

NPM 컨테이너 설정


외부에서 80/443 Port 접속시 공유기 포트 포워딩
: HTTP 외부 80 → 내부 8080, HTTPS 외부 443 → 내부 8443 Port로 연결
내부 NAS/Container/NPM Port 설정
: HTTP 로컬 8080 → Container 80
: HTTPS 로컬 8443 → Container 443
: NPM 동작 로컬 81 → Container 81
NPM 동작 조건은 Container의 80, 443 Port 연결이 되어 있어야 동작


볼륨 설정 및 최종 설치

사전에 생성한 폴더와 볼륨을 하기와 같이 설정합니다.

NPM 컨테이너 설정


설정값을 확인하고 이상없으면 완료를 눌러 최종 설치 합니다.

NPM 컨테이너 설정 정보



NPM(Nginx Proxy Manager) 사용법.


접속 및 주 사용 항목 : Proxy Hosts

NPM 컨테이너가 생성되면, NAS의 로컬 네트워크 내에서 NPM에 접근할 수 있도록 설정합니다.
이를 위해 기본적으로 81번 포트를 로컬 머신과 매핑하고, NPM의 웹 인터페이스에 접속합니다.
기본 계정정보는 “Email: admin@example.com, password: changeme” 입니다.

NPM 접속


접속후 이메일 주소와 비밀번호를 변경후 메인 Dashboard로 들어가서 Proxy Hosts 로가서 호스트를 추가해주시면됩니다.

NPM 사용


Proxy Host 사용법 : 도메인 추가 및 SSL 설정

Nginx Proxy Manager의 대시보드에서 ‘Proxy Hosts’를 선택하고, ‘Add Proxy Host’ 버튼을 클릭합니다.
Domain Names을 입력하고, 연결할 Forward Hostname / IP를 입력합니다.

NPM 사용


NPM에서 역방향프록시 설정시 동작 방식 예시
: EX) ***.duckdns.org → http://222.**.**.**:8060 으로 설정 되어 있다고 가정
: 외부에서 ***.duckdns.org 입력시 80 port로 들어오면 공유기에서 8060 port 포트포워딩
: 8070 port는 NAS/Container → NPM 80 port로 연결
: NPM은 80 port로 들어온 것을 http://222.**.**.**:8060으로 연결 되는 구조


SSL 인증서 설치 및 자동 갱신

SSL 탭을 선택 하고 설정하면 Let’s Encrypt의 인증서도 발급 받아 적용이 되며, 인증서 유효기간 도달시 자동 갱신 됩니다.

NPM 사용


기타: 리버스 프록시 규칙 설정

‘Advanced’ 탭에서 추가적인 Nginx 구성 설정을 추가할 수 있습니다.
여기서 고급 캐싱, 리다이렉션 규칙 등을 설정하여 성능 최적화와 보안 강화를 도모할 수 있습니다.


마지막으로

Nginx Proxy Manager 컨테이너가 성공적으로 실행되고 연결되면, 다양한 웹 서비스와 애플리케이션의 트래픽을 관리할 수 있습니다. 이를 통해 NAS를 효율적으로 활용하면서 안정적인 리버스 프록시 서비스를 제공할 수 있습니다.

  1. 모니터링: Nginx Proxy Manager의 대시보드에서 실시간으로 트래픽 및 로그를 모니터링할 수 있습니다.
  2. 백업: 컨테이너 설정과 데이터를 정기적으로 백업하여 문제 발생 시 신속하게 복구할 수 있도록 합니다.

시놀로지 NAS 내에서 Container Manager를 통해 Nginx Proxy Manager를 설치하고 연결하는 것은 웹 서비스와 애플리케이션의 트래픽을 효과적으로 관리하는 데 큰 도움을 줍니다. 이를 통해 격리된 환경에서 안전하고 효율적으로 서비스를 운영할 수 있습니다.

Leave a Comment