본문 바로가기
IT&DEV -*

[OMV6]Docker - Nginx Proxy Manager 설치

by Hoft 2023. 3. 31.

 

Nginx Proxy Manager (NPM) 은 오픈 소스 웹 인터페이스를 사용하여 Nginx reverse proxy를 관리하기위한 툴입니다.

이 툴은 도커(Docker)를 사용하여 배포 및 설치 할 수 있으며, 매우 사용하기 쉬우면서도 매우 유연하고 강력한 기능을 제공합니다.


NginxProxyManager 주요 기능

  1. Reverse Proxy : NginxProxyManager는 Reverse Proxy 기능을 제공합니다. 여러 개의 웹 사이트를 한 개의 IP 주소로 관리할 수 있습니다.
  2. SSL 인증서 관리 : NginxProxyManager는 SSL 인증서를 자동으로 생성하고 관리할 수 있습니다. Let's Encrypt 인증서를 자동 갱신청하여 HTTPS 보안 연결을 쉽게 구성할 수 있습니다.
  3. 로드 밸런싱 : NginxProxyManager는 로드 밸런싱 기능을 제공합니다. 여러 대의 서버에 부하를 분산하여 웹 사이트의 성능을 향상시킬 수 있습니다.
  4. 세션 관리 : NginxProxyManager는 세션 관리 기능을 제공합니다. 사용자가 로그인한 후 웹 사이트에서 다른 페이지를 이동하더라도 로그인 상태를 유지할 수 있습니다.
  5. URL 재작성 : NginxProxyManager는 URL 재작성 기능을 제공합니다. 사용자가 접속한 URL을 다른 URL로 재작성하여 웹 사이트의 SEO를 향상시킬 수 있습니다.
  6. 웹 기반 UI : NginxProxyManager는 웹 기반 UI를 제공합니다. 사용자가 쉽게 설정을 변경하고 관리할 수 있습니다.

 

장점

  • 간단하게 웹 인터페이스를 통해 Nginx reverse proxy를 관리할 수 있습니다.
  • 쉽게 SSL 인증서를 관리할 수 있습니다.
  • 가상 호스팅 및 포트 포워딩과 같은 기능을 지원하여 다중 웹 서버 호스팅이 가능합니다.
  • Docker를 사용하여 쉽게 배포하고 업그레이드할 수 있습니다.
  • 대부분의 설정을 자동으로 처리하므로 초보자도 쉽게 사용할 수 있습니다.

 

단점

  • 대규모 및 복잡한 웹 애플리케이션에 대한 고급 설정 및 최적화 기능이 상대적으로 부족합니다.
  • Docker를 사용하지 않는 서버에서 설치 및 운영이 복잡할 수 있습니다.

OMV6 Docker위에 Nginx Proxy Manager를 설치하여 쉽게 서비스에 접속하도록 구성해보려고 합니다.

기존에는 NextCloud, Plex, 등등 서비스를 외부에서 접속하려면 공인IP뒤에 포트를 붙여서 접속해야 했습니다.

이렇게되면 포트번호를 외워야 하는 것도 있고 서비스 포트마다 공유기에 접속해서 포트포워딩을 해줘야하는 불편함도 있습니다.

ex) NextCloud => dodam.ml:2222 Plex => dodam.ml:3333

이런 불편함을 없애기 위해 서브도메인을 만들고 Nginx Proxy Manager(NPM)을 통해 쉽게 접속하도록 변경하면

cloud.domain.ml

nas.domain.ml

등등 이런식으로 가능하게 됩니다.

 


Nginx Proxy Manager 설치방법

1. 먼저, Portainer를 열어서 좌측 네비게이션 메뉴에서 "이미지"를 선택합니다.

2. 그런 다음 "이미지" 입력란에 "jlesage/nginx-proxy-manager"를 입력하고 "Pull the image" 버튼을 클릭하여 해당 이미지를 다운로드합니다.

3. 이미지 다운로드가 완료되면 "Volumes" 탭으로 이동합니다.

4. "Add Volume" 버튼을 클릭하여 NPM 에서 사용할 저장소를 생성합니다.

5. Volume이 잘 생성되었으면 "컨테이너" 탭으로 이동합니다.

6. "Add Container" 버튼을 클릭합니다.

7. 필요한 정보를 입력합니다.

  • name NginxProxyManager (원하는 이름을 입력)
  • image : 방금 다운로드한 "jlesage/nginx-proxy-manager:latest"를 입력합니다.
  • Manual netwrok port publishing : NPM은 3개의 포트가 필요합니다. "publish a new network port" 버튼을 눌러 3개를 추가하고 포트를 입력하여 맵핑합니다.
    • 80 / 8080
    • 81 / 8181
    • 443 / 4443
  • Advanced container settings
    • Volumes 에서 이전에 생성한 Volume를 설정해줍니다.

 

  • Network는 이전 블로그에서 생성한 MyNet 네트워크로 설정해줍니다.
  • Docker Network 설정

 

    • Restart policy 탭에서는 NPM이 항상 재시작될 수 있도록 Restart policy "Always" 로 선택합니다. 이후 "Deploy the container" 버튼을 클릭하여 컨테이너를 생성합니다.

 

Nginx Proxy Manager 접속 & 로그인

생성한 NPM은 컨테이너생성시 맵핑한 8181 port로 서비스됩니다.

"웹 브라우저"를 열고 "http://localhost:8080" 주소로 접속합니다.

접속을하면 로그인페이지가 나오고 최초 로그인 계정은 아래와 같습니다.

ID : admin@example.com

PW: changeme

 

이번 글에서는 Portainer를 활용하여 NginxProxyManager를 설치하는 방법과 주요 기능을 소개하였습니다. NginxProxyManager는 여러 가지 기능을 제공하여 웹 사이트의 성능과 보안을 향상시킬 수 있습니다. Portainer를 활용하여 NginxProxyManager를 쉽게 설치하고 사용할 수 있습니다.

 

 

 

댓글