Nginx Proxy Manager Docker-compose 작성하기.

최인영·2023년 8월 1일
1

Docker

목록 보기
1/1

Nginx Proxy Manager를 사용하는 이유

  • 자동으로 무료 SSL 인증서를 갱신해준다.
  • Nginx 웹서버의 경우, 모두 터미널에서 입력해야하는데, Nginx Proxy Manager는 초보자에게 GUI로 쉽게 웹서버를 운영하게 해준다.
  • 도메인에 일일이 포트번호를 쓰지 않고 도메인만 작성해도 내 웹사이트에 접속할 수 있다.(👍)
  • HTTP에서 HTTPS로 강제 리다이렉트, Reverse Proxy 설정, 강제 HTTPS 설정, Sreams 설정 등 나의 웹 서버 관리를 쉽게 할 수 있다.

-- 참고로, Nginx Proxy Manager는 Docker에서만 사용가능하다.
Nginx Proxy manager 홈페이지 바로가기

Docker Compose 작성 전 폴더 구조

../docker
	│   docker-compose.yml // 도커 컴포즈 파일
	└───data // Nginx 데이터
	└───letsencrypt // letsencrypt 폴더
    └───mysql // Nginx Proxy Manager DB 폴더

Nginx Proxy Manager 네트워크 세팅

$ docker network create npm // npm 이라는 이름을 가진 네트워크 생성

이렇게 npm 이라는 네트워크를 생성해놓으면
다른 docker compose를 up할 때 편리하다.

Docker Compose 작성하기

version: "3"
services:
  npm:
    container_name: npm
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    container_name: npm-db
    # image: 'jc21/mariadb-aria:latest' amd64 기준 db
    image: 'yobasystems/alpine-mariadb:latest' # arm64 기준 db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
      TZ: Asia/Seoul
    volumes:
      - ./mysql:/var/lib/mysql
networks:
  default:
    external: true
    name: npm

Docker Compose UP

$ docker compsoe up -d // 백그라운드에서 docker container 실행

Nginx Proxy Manager 접속하기

http://아이피주소:81 또는 http://도메인:81 로 이동 후
Nginx Proxy Manager 로그인 화면
초기 이메일은 admin@example.com
초기 비밀번호는 changeme 이다.

Proxy Host 만들기

DashBoard

Dashboard -> Proxy Hosts 로 이동하면,
add proxy host

우측 상단에 add proxy host 클릭.
new proxy host
Domain Names에 구입한 도메인
Forward Hostname / IP에 docker compose에 작성했던 container_name
Forward Port에 docker container 내부 포트
를 작성하고 save를 클릭하면 된다.

그리고 http://도메인 로 이동 후 Nginx Proxy Manager 에 접속된다면 끝!

profile
꼼꼼하고 호기심 많은 개발자

0개의 댓글