Nginx Reverse Proxy를 쉽게 사용하기 위한 Proxy-manager 구축하기.(NPM)
추가추가
https://svrforum.com/svr/284432
안녕하세요. 달소입니다.
오늘도 새로운 정보를 하나 주워왔습니다 ㅋㅋ..
오늘 라우터가 도착하기로해서 리버스프록시 셋팅을 바꾸려고 이것저것 찾아보는데
Proxy-Manager 라는 Docker Image가 존재하더군요.
https://nginxproxymanager.com/
nginx의 리버스프록시와 Let's Encrypt 인증서를 쉽게 발급받을 수 있도록 도와주는 이미지입니다.
사전준비
설치 OS는 Ubuntu 20 LTS
docker,docker-compose 설치
없으면 apt install docker.io docker-compose
docker-compose로 컨테이너 생성하기.
먼저 데이터를 저장할 디렉터리를 먼저 생성해주세요.
mkdir -p /data/proxy-manager
cd /data/proxy-manager
vi docker-compose.yml
80,443은 웹서비스를 위한 포트 81번은 관리를 위한 웹페이지입니다.
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
이제 docker-compose up -d 명령어로 컨테이너를 만들겠습니다.
설치후 docker ps 명령어로 컨테이너를 확인할 수 있고 ip:81번으로 접속해주세요.
계정정보는 아래 정보로 입력해주면됩니다.
Email: admin@example.com
Password: changeme
로그인하면 계정명 pw 다변경해야합니다.
로그인 하고나오면 이제 대시보드, 호스트, 액세스리스트, 인증서 등 확인이 가능합니다.
npm의 80번 포트로 접근하면 아래처럼 Congration이 나옵니다
인증서 발급부터 프록시 실습은 다음글에서 작성하도록 하겠습니다.
docker ps 로 컨테이너 id 확인하여, docker logs <컨테이너_id> 로 로그 조회했을 때,
MySQL이 정상적으로 구동되지 않는 경우에 오류가 뜨는 것으로 보입니다.
저 같은 경우,
- ./data/mysql:/var/lib/mysql 를
- ./mysql:/var/lib/mysql 로 수정하여 해당 문제 해결하였습니다.
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
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
- ./config.json:/app/config/production.json
- ./letsencrypt:/etc/letsencrypt
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./mysql:/var/lib/mysql
요 내용으로 바꾸고
docker-compose up -d
하면 오류가 나네요.
설치 완료후 192.168.1.114:81 하면 아래와 같은 창이 나오고
아이디, 비밀번호 입력후 확인누르면
Bad Gateway라고 나오고 넘어가지 않네요.
공유기 포트포워딩으로 80:80, 81:81, 443:443 열어주었습니다.
192.168.1.114:80 포트로 접속하면 "Congratulations!"은 잘 나옵니다.
유뷰트 영상보고 설치하였습니다.
현재 작동 잘 됩니다^^
cmt alert