• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

Nginx Reverse Proxy를 쉽게 사용하기 위한 Proxy-manager 구축하기.(NPM)

달소 달소 8081

6

44

추가추가

 

https://svrforum.com/svr/284432

안녕하세요. 달소입니다.   이번글은 홈서버에서 가장 유용하게 사용할수 있는 팁이자 이해만하신다면 정말 쉽게 사용할 수 있는방법입니다.   ...
달소 | 2022.05.06

 


 

안녕하세요. 달소입니다.

 

오늘도 새로운 정보를 하나 주워왔습니다 ㅋㅋ..

오늘 라우터가 도착하기로해서 리버스프록시 셋팅을 바꾸려고 이것저것 찾아보는데 

 

Proxy-Manager 라는 Docker Image가 존재하더군요.

 

https://nginxproxymanager.com/

Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful ...

 

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 명령어로 컨테이너를 만들겠습니다.

 

image.png.jpg

 

설치후 docker ps 명령어로 컨테이너를 확인할 수 있고 ip:81번으로 접속해주세요.

 

image.png.jpg

 

계정정보는 아래 정보로 입력해주면됩니다.

 

Email:    admin@example.com
Password: changeme

image.png.jpg

 

로그인하면 계정명 pw 다변경해야합니다.

 

image.png.jpg

 

 

로그인 하고나오면 이제 대시보드, 호스트, 액세스리스트, 인증서 등 확인이 가능합니다.

 

image.png.jpg

 

image.png.jpg

 

image.png.jpg

 

npm의 80번 포트로 접근하면 아래처럼 Congration이 나옵니다 

 

image.png.jpg

 

인증서 발급부터 프록시 실습은 다음글에서 작성하도록 하겠습니다.

신고공유스크랩
44
best ruungjiBest 2023.05.13. 02:14
<ip>:81 npm 웹로그인 과정에서 Bad Gateway 오류 발생시,
docker ps 로 컨테이너 id 확인하여, docker logs <컨테이너_id> 로 로그 조회했을 때,
MySQL이 정상적으로 구동되지 않는 경우에 오류가 뜨는 것으로 보입니다.

저 같은 경우,
- ./data/mysql:/var/lib/mysql 를
- ./mysql:/var/lib/mysql 로 수정하여 해당 문제 해결하였습니다.
profile image
달소 글쓴이 2021.04.29. 07:55
하늘위의하늘

록시할게많아서 바꾸면 편리할거같긴합니다.. 와일드카드 인증서 발급쪽에서 막혀서 고생중이지만요 ㅠ

3등
테돌아이 2021.07.08. 08:57

오..

감사합니다.

근데 우분투 지금 설치하고 있는데 기냥 다음 다음 눌려 기초적으로 설치를 하면 되는것이죠?

혹시 ip는 자동으로 하고 설치가 마무리 되고 나서 변경이 가능하죠?

 

profile image
달소 글쓴이 2021.07.08. 09:18
테돌아이

넵넵 ip할당은 아래 방법으로도 설치후에 변경가능합니다.

https://svrforum.com/svr/18490

테돌아이 2021.07.08. 14:12

따라하는데 잘 이해가 안되네요.

 

sudo -i

 

apt install docker.io docker-compose

mkdir -p /data/proxy-manager

cd /data/proxy-manager

vi docker-compose.yml 에 아래 내용을 복사해서 붙여넣고

 

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

 

이런 순서대로 명령과 vi 편집을 하면 되나요?

테돌아이 2021.07.09. 09:29

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"

 

이부분 이해가 잘 안가는데요.

 

먼저 공유기에 80,443 두개 포트를 열어야하고

80:80 기준에서 전과 이후 어떻게 구별을 해서 설정을 해야하나요?

 

그리고 sql 이 필요하군요.

감사합니다.

profile image
달소 글쓴이 2021.07.09. 09:38
테돌아이

80/443 은 웹 프록시서버에서 모든 웹 트래픽을 받는걸 의미합니다.

81번 포트는 관리용 웹 GUI 접근용 포트로 열어주시면됩니다.

테돌아이 2021.07.09. 11:25
달소

vi docker-compose.yml 만들어 실행하지 않고

그냥 ssh 에서 바로 명령어 내려서 하는 방법은 없나요?

 

나스에 도커 설치해서 ssh에서

docker run -d \

--name nginx-proxy\

....

 

이런 방식으로는 안되나요?

이런 방식은 너무 중복일을 하는것 같습니다. ㅎㅎ

 

profile image
달소 글쓴이 2021.07.09. 11:35
테돌아이

ssh로 실행하기에는 명령어도 길 뿐더러 컨테이너가 개별로 실행되는데 반해

docker-compose.yml 로 관리하는경우 스택으로 구분되어 관리도 편하고 추후에 수정하기도 훨씬 편한축에 속합니다.

xpenology에서는 docker-compose 가 제대로 작동하지않고

요즘 추세가 독립적인 docker run이 아닌 compose로 관리하기때문에 이미지를 만드는쪽에서도 명령어를 제공해주지않네요.

테돌아이 2021.07.09. 15:10
달소

- '81:81' 이부분을 저는 8181:8181로 했는데

ip:8181 로 접속을 했습니다.

페이지를 열수가 없습니다. ㅠㅠ

 

근데 저가 앞에서 질문을 드렸는데

8181:8181

이렇게 구성을 하면

: 문자 앞쪽에 포트와 뒷쪽 포트는 어떤 기준으로 설정을 하는지 이해를 못해서요.

profile image
달소 글쓴이 2021.07.09. 15:14
테돌아이

앞쪽포트는 Host가 직접 통신하는 포트이고 뒤쪽포트는 컨테이너가 통신하는 포트입니다.

이미지상에서 81번포트를 관리페이지 용도로 사용하기때문에

81:81에서 뒤쪽 81번은 그대로 두시고 앞쪽을 8181:81 로 바꾸셔야 정상접근되실겁니다.

테돌아이 2021.07.09. 15:26
달소

그럼 컨테이너 삭제는 어떻게 하나요?

저가 nas docker 사용시에는 명령어를 알고 있는데

이런 방식은 생소해서 ㅠㅠ

컨테이너 삭제는

docker stop 컨테이너 이름

docker rm 컨테이너 이름

이렇게 삭제를 하면 되는데 우분투는 좀 다른것 같아서요.

다시 지우고 포트 다시 잡아야겠습니다. ㅎㅎ

 

건데..

도커 관리하는 도커 설치를 했는데 이것 또한 9000 인데 저는 9001로 했습니다.

9000은 이미 사용중에 있기 때문에 다른 포트를 사용을 해야할것 같아서요.

\

즉,

서버가 두대가 잇는데 지금 사용하는 서버는 정상적으로 셋팅을 해서 사용중에 동일한 포트를 사용하고 있습니다.

지금 테스트 하는 서버에 동일하게 하면 충돌이 일어날까 해서요.

감사합니다.

profile image
달소 글쓴이 2021.07.09. 15:27
테돌아이

서버가 다르면 포트가 겹쳐도 상관없습니다.

컨테이너 중지는 docker-compose down 해주시면 됩니다.

테돌아이 2021.07.09. 15:33
달소

아... 서버가 다르면 겹쳐도 되는군요.

 

컨테이너 중지가 아니라 다시 컨테이너 설치를 하려고 합니다.

컨테이너 삭제 방법을 몰라서요.

감사합니다.

123

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
가이드 Ubuntu 24.04 LTS Desktop 원격 접속 설정하기(SSH,RDP) 3 달소 5시간 전18:33 58 +1
가이드 Ubuntu 24.04 LTS Server 설치해보기 달소 6시간 전17:40 108 +2
잡담 Ubuntu 24 가 정식출시되었습니다~~ 8 달소 13시간 전10:37 223 +2
3870 잡담
normal
kmw_ 2시간 전21:52 121 0
3869 후기
normal
ljr10 3시간 전21:18 67 0
3868 가이드
image
달소 5시간 전19:06 45 0
3867 가이드
image
달소 5시간 전18:33 58 +1
3866 가이드
image
달소 6시간 전18:09 66 0
3865 가이드
image
달소 6시간 전17:40 108 +2
3864 질문
normal
까칠한나그네 8시간 전15:44 72 0
3863 잡담
image
달소 13시간 전10:37 223 +2
3862 가이드
image
달소 1일 전23:10 78 +1
3861 가이드
image
달소 1일 전22:54 77 0
3860 질문
normal
감자칩 1일 전18:56 197 0
3859 질문
image
게르노 1일 전16:08 70 0
3858 질문
image
동도리군 1일 전12:14 89 0
3857 정보
image
달소 1일 전08:21 169 +1
3856 잡담
image
달소 1일 전07:46 290 +1
3855 가이드
image
달소 1일 전07:24 262 0
3854 질문
normal
서버구축하자 2일 전13:09 412 0
3853 질문
image
미스터빈 3일 전20:09 222 0
3852 질문
image
초보나스 3일 전08:05 267 +1
3851 질문
normal
웹서버구축관심 4일 전02:22 331 0