검색결과 리스트
전체 글에 해당되는 글 195건
- 2023.02.06 NPM(Nginx Proxy Manager) 쉽게 설치하기
글
NPM(Nginx Proxy Manager) 쉽게 설치하기
요즘 재미있는 툴을 발견했다. 예전부터 리버스 프록시를 설정하려면 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
},
재부팅해도 다시 실행될 것이다.
설치 디렉토리에 생성된 파일을 보면 다음과 같이 딱 필요한 파일만 있다.