NPM(Nginx Proxy Manager) 쉽게 설치하기

IT 등/리눅스 관련 2023. 2. 6. 21:58

요즘 재미있는 툴을 발견했다. 예전부터 리버스 프록시를 설정하려면 apache2나 nginx를 설치하고 어렵게 설치해야 했었는데, 웹 UI로 쉽게 설치할 수 있는 툴이 있었던거다.

Nginx Proxy Manager. 이걸 더 쉽게 설치해보자.

도커를 이용하면 편리하고 docker-compose를 이용하면 더 편리하다. 명령어 한줄이면 된다.

여기까지는 다 아는 사실이고,

아래 docker-compose.yaml이 공식 사이트에서 배포하는 docker-compose.yaml 이다. 그런데 결정적인 단점이 있다.

많이 쓰이는 mariadb가 Nginx Proxy Manager의 리포지터리이기 때문에 해당 docker-compose.yaml을 쓰면 또하나의 db 컨테이너 생성되므로 기존에 이미 mariadb를 쓰고 있으면 포트가 충돌한다. 이래저래 세팅에 손이 많이 간다.

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

그래서 더 찾아보니 mariadb 를 컨테이너 내부에 설치해서 포트 점유를 줄여준 이미지도 존재한다. 실제 mariadb를 사용하고 있는 장비에 설치해봐도 잘 동작한다.

그런데 이 도커 이미지는 서비스 표준 포트가 좀 달랐다. 그래서 docker-compose.yaml 의 설정을 조절해서 원래 NPM이 사용하는 포트로 서비스되도록 했다.

이게 진짜 원터치지.

version: '3' 
services: 
  nginx-proxy-manager: 
    image: jlesage/nginx-proxy-manager 
    ports: 
      - 81:8181 
      - 80:8080 
      - 443:4443 
    volumes: 
      - ./:/config:rw 
    environment:  
      - TZ=Asia/Seoul
    restart: always

설치하고 나면 다음과 같은 화면이 뜬다.

아제 로그인을 해야 할텐데, 초기 아이디와 패스워드는 다음과 같다.

초기 아이디 : admin@example.com
초기 비밀번호 : changeme

위 정보로 로그인 하면 아이디와 비밀번호를 바꾸라는 UI가 나오니 바꿔주면 된다.

이로서 세팅은 마쳤고, 혹시 재부팅하면 저절로 다시 실행되는지 확인해본다. 도커로 설치했으니 속성확인을 하면 된다.

            "RestartPolicy": { 
                "Name": "always", 
                "MaximumRetryCount": 0 
            },

재부팅해도 다시 실행될 것이다.

설치 디렉토리에 생성된 파일을 보면 다음과 같이 딱 필요한 파일만 있다.

설정

트랙백

댓글