본문으로 바로가기

https://nginxproxymanager.com

 

Nginx Proxy Manager

Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt

nginxproxymanager.com

0. 도커 설치

https://docs.docker.com/desktop/setup/install/mac-install/

 

Mac

Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

도커 설치(버전) 확인

docker -v

 

1. Docker Compose 파일 생성

services:
app:
container_name: nginx-proxy-manager
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

docker-compose.yml
0.00MB

위 파일은 공홈 QuickGuide대로입니다.

 

docker-compose.yml를 원하는 곳으로 설치(경로는 영어로)


docker-compose.yml을 저장한 경로에서 명령어 실행

docker-compose up -d

 

정상적으로 올라갔는지 확인

docker container ls -all

명령어 혹은 OrbStack, Docker Desktop 같은 것으로 확인..

2. Nginx Proxy Manager 접속

접속 URL은 "http://localhost:81"로 접속하면 된다.

접속 화면

초기 계정

  • Email: admin@example.com
  • Password: changeme

초기 계정으로 접속시 이름, 닉네임, 이메일, 패스워드를 변경하는 팝업이 뜸.

3. Host 설정

Hosts → Proxy Hosts로 이동
이동시 첫 화면
Add Proxy Hosts 클릭 시 나오는 팝업

Domain Names: 오픈할 서버 URL 입력 (ex: localhost, local.test.com)

Scheme: 내부 웹 서비스 프로토콜 (http or https)

Forward Hostname / IP: 내부 웹 서비스 IP나 호스트 이름 (host.docker.internal)

Forward Port: 내부 웹 서비스 포트(80, 81, 443은 Nginx Proxy Manager에게 할당되어 있음)

Cache Assets: 정적 콘텐츠 캐싱 기능

Block Common Exploits: 프로젝트에서 제공하는 공격 패턴 차단 기능
                                              SQL Injection을 막아주는 기능

Websockets Supoort: 웹 소켓 기능

 

3-1. Custom locations 설정

Custom Locations

저는 백엔드를 3002포트로 열어서 위와 같이 설정했습니다.

Define location: 구분되는 router명

Scheme: 내부 웹 서비스 프로토콜 (http or https)

Forward Hostname / IP: 내부 웹 서비스 IP나 호스트 이름

Forward Port: 내부 웹 서비스 포트

 

3-2. SSL Certificates 등록 (Https 사용시)

저는 mkcert를 사용하여 localhost용 인증서를 사용할 예정입니다.

SSL Certificates 탭 위치
SSL Certificates 초기화면 및 추가 버튼 위치
Add Custom Certificate 화면


인증서 등록시 Name은 구분할 수 있게 잘 적어야한다. (수정 불가)

등록 완료 화면

 

inactive 상태는 proxy host에 연결되지 않은 상태일 뿐, 정상 등록된 화면입니다.

3-3. Proxy Hosts에 SSL 설정하기

Proxy host 설정 위치
SSL 탭 위치
SSL Certificate 선택 전

 

SSL Certificate 선택 후

Force SSL: HTTP 프로토콜(Port: 80)로 접속해도 HTTPS 프로토콜 (Port: 443)로 접근시키도록 하는 기능

HTTP/2 Support: HTTP/2 프로토콜 사용
                                기존 HTTP 표준을 확장한 프로토콜이며, 성능이 개선된 방식

HSTS Enabled: HTTP Strict Transport Security

                            웹 서비스를 보안 연결을 통해서만 접속되도록 강제하는 정책

HSTS Subdomains: HSTS 정책을 모든 하위 도메인에도 적용시키기 위함

 

Request a new SSL Certificate 선택시 나오는 추가옵션

Request a new SSL Certificate 선택시 화면

Use a DNS Challenge: Let's Encrypt SSL 인증서를 발급받기 위한 방식 중 하나로 도메인 소유권을 검증하기 위해 HTTP 챌린지를 사용함. (DNS 설정을 건드릴 수 있어야함)

DNS Provider: 도메인 이름을 IP 주소로 변환해주는 서비스를 제공하는 업체

인증서 사용중인 상태

 

반응형

 

반응형

Docker카테고리의 다른글

Docker 공부 시작..  (0) 2023.11.21