Nginx 프록시 관리자 설치 - 2분 설정 가이드
귀하의 서비스는 현재 192.168.1.50:8080과 같은 보기 흉한 주소에 있습니다. Nginx 프록시 관리자는 무료 HTTPS를 사용하여 이를 app.yourdomain.com과 같은 깔끔한 이름으로 변환합니다. 하나의 Docker Compose 파일과 함께 설치되고 직접 작성한 구성 파일 대신 간단한 웹 패널에서 관리됩니다.
📑챕터
- 역방향 프록시의 기능 - 모든 서비스를 위한 단일 도어
- 시작하기 전에 필요한 것 - Docker, 도메인 및 연결 가능한 포트
- 무엇이든 설치하기 전에 도메인 DNS를 서버에 지정
- 폴더 및 docker-compose.yml 파일 생성
- 하나의 명령으로 Nginx 프록시 관리자 시작
- 첫 번째 로그인 - 모두가 잘못하는 관리자 계정 단계
- 필드별로 첫 번째 프록시 호스트 만들기
- 무료 Lets Encrypt HTTPS 인증서를 받고 SSL 강제 실행
📋 개요 및 단계별 가이드
시작하기 전에 필요한 것
Nginx 프록시 관리자(NPM)가 작동하려면 세 가지가 있어야 합니다. 첫째, Docker 및 Docker Compose가 이미 설치되어 작동하는 Linux 서버 또는 PC입니다. NPM은 일반 프로그램이 아닌 컨테이너로 실행됩니다. 둘째, 모든 서비스에는 자체 하위 도메인이 있으므로 DNS를 편집할 수 있는 도메인 이름입니다. 셋째, 라우터 또는 클라우드 방화벽이 포트 80 및 443을 이 시스템에 전달할 수 있어야 합니다.
먼저 도메인 DNS가 서버를 가리키도록 하세요.
NPM은 이름별로 트래픽을 라우팅하고 Lets Encrypt는 귀하의 컴퓨터를 가리키는 이름에 대해서만 인증서를 발급합니다. 따라서 이름을 기반으로 구축하기 전에 이름을 확인해야 합니다. 등록 기관 또는 DNS 호스트에서 A 레코드를 추가하세요. 이름은 하위 도메인 단어(예: app)이고 값은 서버의 공용 IP 주소입니다. 모든 서비스는 자체 기록을 가지며 모두 동일한 IP를 가리킬 수 있습니다. NPM은 나중에 서비스를 이름별로 분리합니다. 테스트하는 동안 300초와 같은 짧은 TTL을 설정하면 몇 시간이 아닌 몇 분 안에 실수가 사라집니다.
계속하기 전에 이를 증명하세요. 이름이 외부 네트워크(예: Wi-Fi가 꺼진 휴대폰)의 공용 IP로 확인되는지 확인하세요. 손상된 DNS 낭비에 대한 인증서를 요청하면 Lets Encrypt 시도가 반복되고 실패가 반복되면 몇 시간 동안 속도가 제한될 수 있습니다. 순서가 중요합니다. DNS가 먼저, 프록시 호스트가 두 번째, 인증서가 세 번째입니다.
폴더 및 작성 파일 만들기
서버에 NPM용 폴더를 만들고 그 안에 아래 파일을 docker-compose.yml로 저장합니다. 이 단일 파일이 전체 설치 파일입니다. 이미지 이름은 공식 커뮤니티 이미지입니다. 포트 80과 443은 공개 문이고, 포트 81은 관리자 패널이며, 두 볼륨은 전체 설정이 있는 곳입니다. ./data는 모든 프록시 호스트와 함께 데이터베이스를 보유하고 ./letsencrypt는 인증서를 보유합니다. 두 폴더를 잃으면 전체 설정도 잃게 됩니다. 작업이 실행되면 백업해 두세요.
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을 자동으로 다시 가져옵니다.
Nginx 프록시 관리자 시작
해당 폴더 내에서 시작 명령을 실행하십시오. Docker는 이미지를 다운로드하고 백그라운드에서 컨테이너를 시작합니다.
docker compose up -d
실행 중인지 확인하세요.
docker ps
포트 80, 443 및 81이 포함된 컨테이너가 나열되어야 합니다. 소규모 서버에서는 데이터베이스가 생성되는 동안 처음 시작하는 데 1~2분 정도 걸립니다. 컨테이너가 계속 다시 시작되면 로그에 이유가 일반 언어로 표시됩니다.
docker compose logs
10번 중 9번은 재시작 루프가 호스트의 다른 항목에서 이미 사용하고 있는 포트입니다. 일반적으로 아직 실행 중인 오래된 웹 서버입니다.
첫 번째 로그인 - 관리자 계정을 즉시 보호하세요
자신의 네트워크에 있는 브라우저에서 관리자 패널을 엽니다.
http://your-server-ip:81
처음 1분 안에 이 작업을 수행하십시오. 빌드에 따라 NPM은 잘 알려진 첫 로그인 관리자 세부 정보를 자신의 이메일과 강력한 비밀번호로 바꾸도록 요청하거나, 기본 계정이 없는 최신 빌드에서는 관리 페이지를 가장 먼저 여는 사람이 관리자를 만듭니다. 어느 쪽이든 규칙은 동일합니다. 다른 것을 만들기 전에 컨테이너가 시작되는 순간 자신의 관리자 계정을 설정하고 실제 사서함(인증서 문제를 해결하는 NPM 이메일)을 사용하세요.
첫 번째 프록시 호스트 만들기
NPM에서 호스트 → 프록시 호스트 → 프록시 호스트 추가를 열고 "이 이름은 해당 내부 서비스에 사용됩니다"라는 한 문장으로 양식을 작성합니다.
도메인 이름: app.yourdomain.com - 2단계의 정확한 공개 이름으로 이미 서버로 확인되어야 합니다.
구성표: 대부분의 가정 및 사무실 앱에 대한 http입니다. 체계는 방문자가 사용하는 것이 아닌 NPM과 내부 서비스 간의 연결을 설명합니다. NPM은 문에서 공개 암호화를 처리합니다. 내부 앱 자체가 HTTPS를 제공하는 경우에만 여기에서 https를 선택하세요.
전달 호스트 이름/IP: 서비스의 내부 주소(예: 192.168.1.50).
전달 포트: 서비스가 실제로 수신 대기하는 포트(예: 8080 - 80 또는 443이 아님) 그것은 서비스의 문이 아니라 NPM의 문입니다.
일반적인 악용 차단을 켠 다음 저장하세요. 브라우저에서 이름을 열어 즉시 테스트하세요. Wi-Fi가 꺼진 휴대폰에서 이상적으로는 실제 공개 경로를 테스트할 수 있습니다.
localhost가 잘못되었습니다(NPM 컨테이너 내부에서 localhost는 NPM 자체를 의미함). 게시된 포트와 함께 서버의 LAN IP를 사용하거나 두 컨테이너를 동일한 Docker 네트워크에 배치하고 컨테이너 이름을 사용하세요.무료 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로 리디렉션합니다. 그것이 없으면 암호화되지 않은 문은 암호화된 문 옆에 열려 있습니다.
🏷️주제 검색 변수 및 키워드
🎙️ 전체 대본 — 탭하여 펼치기
__TOK_34__
__TOK_35__
__TOK_36__
❓ 자주 묻는 질문
이 튜토리얼은 100% 무료로 따라할 수 있나요?
__TOK_37__
초보자도 이 가이드를 따라갈 수 있나요?
__TOK_38__
막힐 경우 어디에 질문을 할 수 있나요?
__TOK_39__