Technical Anshu 홈 › 튜토리얼 › Nginx 프록시 관리자 설치
🐳 Docker 역방향 프록시

Nginx 프록시 관리자 설치 - 2분 설정 가이드

귀하의 서비스는 현재 192.168.1.50:8080과 같은 보기 흉한 주소에 있습니다. Nginx 프록시 관리자는 무료 HTTPS를 사용하여 이를 app.yourdomain.com과 같은 깔끔한 이름으로 변환합니다. 하나의 Docker Compose 파일과 함께 설치되고 직접 작성한 구성 파일 대신 간단한 웹 패널에서 관리됩니다.

✍️ Technical Anshu🐳 Docker Compose🎧 Multi-Language Audio
Nginx 프록시 관리자 설치 - 2분 설정 가이드
🎧 Multi-Language Audio: Video player [Settings] (⚙️) ➔ [Audio Track]

📑챕터

  1. 역방향 프록시의 기능 - 모든 서비스를 위한 단일 도어
  2. 시작하기 전에 필요한 것 - Docker, 도메인 및 연결 가능한 포트
  3. 무엇이든 설치하기 전에 도메인 DNS를 서버에 지정
  4. 폴더 및 docker-compose.yml 파일 생성
  5. 하나의 명령으로 Nginx 프록시 관리자 시작
  6. 첫 번째 로그인 - 모두가 잘못하는 관리자 계정 단계
  7. 필드별로 첫 번째 프록시 호스트 만들기
  8. 무료 Lets Encrypt HTTPS 인증서를 받고 SSL 강제 실행

📋 개요 및 단계별 가이드

1

시작하기 전에 필요한 것

Nginx 프록시 관리자(NPM)가 작동하려면 세 가지가 있어야 합니다. 첫째, Docker 및 Docker Compose가 이미 설치되어 작동하는 Linux 서버 또는 PC입니다. NPM은 일반 프로그램이 아닌 컨테이너로 실행됩니다. 둘째, 모든 서비스에는 자체 하위 도메인이 있으므로 DNS를 편집할 수 있는 도메인 이름입니다. 셋째, 라우터 또는 클라우드 방화벽이 포트 80 및 443을 이 시스템에 전달할 수 있어야 합니다.

😀 제목의 "2분" 정보: 컨테이너 시작 자체는 정말 빠르지만 Docker가 이미 설치되어 있고 이 가이드의 준비가 완료된 경우에만 가능합니다. 새로운 머신에서는 설정, DNS 및 인증서 단계에 적절한 시간을 허용하십시오. 정직한 합계는 2분보다 깁니다.
⚠️ CGNAT 뒤의 홈 연결에서는 포트 전달이 전혀 작동하지 않습니다. NPM 내부 설정으로 문제가 해결되지 않습니다. 정직한 옵션은 ISP의 공개/고정 IP, 소규모 임대 VPS 또는 대신 터널 도구입니다. 이 확인을 건너뛰지 마십시오. "NPM이 작동하지 않습니다"라는 이야기 중 절반은 실제로 "포트가 서버에 도달하지 못했습니다"라는 이야기입니다.
2

먼저 도메인 DNS가 서버를 가리키도록 하세요.

NPM은 이름별로 트래픽을 라우팅하고 Lets Encrypt는 귀하의 컴퓨터를 가리키는 이름에 대해서만 인증서를 발급합니다. 따라서 이름을 기반으로 구축하기 전에 이름을 확인해야 합니다. 등록 기관 또는 DNS 호스트에서 A 레코드를 추가하세요. 이름은 하위 도메인 단어(예: app)이고 값은 서버의 공용 IP 주소입니다. 모든 서비스는 자체 기록을 가지며 모두 동일한 IP를 가리킬 수 있습니다. NPM은 나중에 서비스를 이름별로 분리합니다. 테스트하는 동안 300초와 같은 짧은 TTL을 설정하면 몇 시간이 아닌 몇 분 안에 실수가 사라집니다.

계속하기 전에 이를 증명하세요. 이름이 외부 네트워크(예: Wi-Fi가 꺼진 휴대폰)의 공용 IP로 확인되는지 확인하세요. 손상된 DNS 낭비에 대한 인증서를 요청하면 Lets Encrypt 시도가 ​​반복되고 실패가 반복되면 몇 시간 동안 속도가 제한될 수 있습니다. 순서가 중요합니다. DNS가 먼저, 프록시 호스트가 두 번째, 인증서가 세 번째입니다.

3

폴더 및 작성 파일 만들기

서버에 NPM용 폴더를 만들고 그 안에 아래 파일을 docker-compose.yml로 저장합니다. 이 단일 파일이 전체 설치 파일입니다. 이미지 이름은 공식 커뮤니티 이미지입니다. 포트 80과 443은 공개 문이고, 포트 81은 관리자 패널이며, 두 볼륨은 전체 설정이 있는 곳입니다. ./data는 모든 프록시 호스트와 함께 데이터베이스를 보유하고 ./letsencrypt는 인증서를 보유합니다. 두 폴더를 잃으면 전체 설정도 잃게 됩니다. 작업이 실행되면 백업해 두세요.

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

restart: unstopped 줄은 재부팅 후 NPM을 자동으로 다시 가져옵니다.

4

Nginx 프록시 관리자 시작

해당 폴더 내에서 시작 명령을 실행하십시오. Docker는 이미지를 다운로드하고 백그라운드에서 컨테이너를 시작합니다.

Terminal
docker compose up -d

실행 중인지 확인하세요.

Terminal
docker ps

포트 80, 443 및 81이 포함된 컨테이너가 나열되어야 합니다. 소규모 서버에서는 데이터베이스가 생성되는 동안 처음 시작하는 데 1~2분 정도 걸립니다. 컨테이너가 계속 다시 시작되면 로그에 이유가 일반 언어로 표시됩니다.

Terminal
docker compose logs

10번 중 9번은 재시작 루프가 호스트의 다른 항목에서 이미 사용하고 있는 포트입니다. 일반적으로 아직 실행 중인 오래된 웹 서버입니다.

5

첫 번째 로그인 - 관리자 계정을 즉시 보호하세요

자신의 네트워크에 있는 브라우저에서 관리자 패널을 엽니다.

Browser Address Bar
http://your-server-ip:81

처음 1분 안에 이 작업을 수행하십시오. 빌드에 따라 NPM은 잘 알려진 첫 로그인 관리자 세부 정보를 자신의 이메일과 강력한 비밀번호로 바꾸도록 요청하거나, 기본 계정이 없는 최신 빌드에서는 관리 페이지를 가장 먼저 여는 사람이 관리자를 만듭니다. 어느 쪽이든 규칙은 동일합니다. 다른 것을 만들기 전에 컨테이너가 시작되는 순간 자신의 관리자 계정을 설정하고 실제 사서함(인증서 문제를 해결하는 NPM 이메일)을 사용하세요.

⚠️ "나중에 완료"하는 동안 포트 81을 공개적으로 연결 가능한 상태로 두지 마십시오. 인터넷에서 패널을 먼저 찾은 사람은 누구나 귀하의 프록시를 소유하게 됩니다. 자신의 네트워크에만 관리자 패널을 유지하십시오.
6

첫 번째 프록시 호스트 만들기

NPM에서 호스트 → 프록시 호스트 → 프록시 호스트 추가를 열고 "이 이름은 해당 내부 서비스에 사용됩니다"라는 한 문장으로 양식을 작성합니다.

도메인 이름: app.yourdomain.com - 2단계의 정확한 공개 이름으로 이미 서버로 확인되어야 합니다.
구성표: 대부분의 가정 및 사무실 앱에 대한 http입니다. 체계는 방문자가 사용하는 것이 아닌 NPM과 내부 서비스 간의 연결을 설명합니다. NPM은 문에서 공개 암호화를 처리합니다. 내부 앱 자체가 HTTPS를 제공하는 경우에만 여기에서 https를 선택하세요.
전달 호스트 이름/IP: 서비스의 내부 주소(예: 192.168.1.50).
전달 포트: 서비스가 실제로 수신 대기하는 포트(예: 8080 - 80 또는 443이 아님) 그것은 서비스의 문이 아니라 NPM의 문입니다.

일반적인 악용 차단을 켠 다음 저장하세요. 브라우저에서 이름을 열어 즉시 테스트하세요. Wi-Fi가 꺼진 휴대폰에서 이상적으로는 실제 공개 경로를 테스트할 수 있습니다.

✅ NPM의 502 잘못된 게이트웨이는 실패가 아니라 이정표입니다. 이는 외부 세계가 NPM에 완벽하게 도달했으며 마지막 내부 홉(호스트 이름 또는 포트)만 잘못되었음을 의미합니다. 전체 설정이 아닌 해당 필드를 수정하세요. 한 가지 함정: 서비스가 다른 Docker 컨테이너에서 실행되는 경우 localhost가 잘못되었습니다(NPM 컨테이너 내부에서 localhost는 NPM 자체를 의미함). 게시된 포트와 함께 서버의 LAN IP를 사용하거나 두 컨테이너를 동일한 Docker 네트워크에 배치하고 컨테이너 이름을 사용하세요.
7

무료 Lets Encrypt HTTPS 인증서 받기

6단계의 일반 호스트가 이미 작동한 후에만 이 작업을 수행하십시오. 손상된 호스트의 HTTPS는 인증서가 있는 손상된 호스트를 제공하고 결함을 찾을 수 있는 위치가 두 배입니다. 동일한 프록시 호스트를 열고 SSL 탭으로 이동하여 SSL 인증서를 새 SSL 인증서 요청으로 설정하고 SSL 강제 실행 및 HTTP/2 지원을 활성화한 다음 Lets Encrypt 서비스 약관에 동의하고 저장합니다. 사이트를 다시 로드하세요. 이제 브라우저에 https에 자물쇠가 표시됩니다.

작동 방식: Lets Encrypt는 포트 80의 공용 인터넷을 통해 서버에 일회성 토큰(HTTP-01 챌린지)을 표시하도록 요청하여 이름 제어를 증명합니다. 그렇기 때문에 사용자를 가리키는 DNS와 연결 가능한 포트 80은 협상할 수 없습니다. 둘 중 하나가 실패하면 요청이 실패하고 오류는 설정에 있고 Lets Encrypt에는 없습니다. SSL 강제 적용은 모든 http 방문자를 자동으로 https로 리디렉션합니다. 그것이 없으면 암호화되지 않은 문은 암호화된 문 옆에 열려 있습니다.

😀 인증서는 90일 동안 유지되며 NPM은 일반적으로 만료되기 약 한 달 전에 동일한 포트-80 증명을 사용하여 인증서를 자동으로 갱신합니다. 갱신이 실패하면 먼저 지루한 원인을 확인하십시오. DNS가 변경되었거나, 라우터 전달이 제거되었거나, 포트 80이 차단되었습니다. 서비스가 확정되고 갱신이 입증된 후에만 HSTS를 활성화하세요. 이는 브라우저가 몇 달 동안 기억하는 강력한 약속입니다.

🏷️주제 검색 변수 및 키워드

🔍 Nginx Proxy Manager 🔍 Reverse Proxy 🔍 Docker Compose 🔍 Lets Encrypt 🔍 Free HTTPS 🔍 Proxy Host 🔍 TechnicalAnshu 🔍 Self Hosting 🔍 Subdomain Setup 🔍 Port 80 443 81 🔍 Force SSL 🔍 Home Server
🎙️ 전체 대본 — 탭하여 펼치기

__TOK_34__

__TOK_35__

__TOK_36__

❓ 자주 묻는 질문

이 튜토리얼은 100% 무료로 따라할 수 있나요?

__TOK_37__

초보자도 이 가이드를 따라갈 수 있나요?

__TOK_38__

막힐 경우 어디에 질문을 할 수 있나요?

__TOK_39__

🚀 YouTube에서 전체 튜토리얼 보기

__TOK_40__

__TOK_41__

▶️ 전체 동영상 보기
이 튜토리얼은 Technical Anshu의 Nginx 프록시 관리자 설치 비디오를 기반으로 합니다. • 어떤 단계에서 막히나요? 영상 댓글로 문의하시면 도움을 받으실 수 있습니다 🙏