Nginx Proxy GuardNginx Proxy Guard

프록시 호스트 관리 (Proxy Host Management)

Nginx Proxy Guard의 핵심 기능인 프록시 호스트 관리 기능을 상세히 설명합니다.

기본 기능

다중 도메인 지원

  • SNI 지원: 하나의 호스트에 여러 도메인 연결
  • 와일드카드: *.example.com 형식 지원
  • 서브도메인: 독립적인 서브도메인 설정

포워딩 설정

설정설명
프로토콜HTTP 또는 HTTPS
호스트명백엔드 서버 주소
포트백엔드 서버 포트
경로프록시 경로 (기본: /)

WebSocket 지원

실시간 양방향 통신을 위한 WebSocket 업그레이드를 완벽하게 지원합니다.

  • 자동 Connection Upgrade
  • 커스텀 헤더 전달
  • 타임아웃 설정

캐싱

정적 리소스에 대한 캐싱 설정을 지원합니다.

  • 캐시 활성화/비활성화
  • 캐시 유효 기간 설정
  • 캐시 키 커스터마이징

고급 설정

커스텀 Location 블록

Nginx location 블록을 직접 추가하여 세밀한 설정이 가능합니다.

# 특정 경로에 대한 설정
location /api/ {
    proxy_pass http://api-server:8080;
    proxy_read_timeout 300s;
}

# 정적 파일 처리
location /static/ {
    alias /var/www/static/;
    expires 30d;
}

Advanced Configuration

Nginx 설정을 직접 편집할 수 있습니다.

주의: 보안을 위해 다음 지시어는 차단됩니다:

  • load_module - 외부 모듈 로드
  • lua_*, perl_*, js_* - 스크립트 실행
  • 쉘 명령어가 포함된 proxy_pass

설정 예시

# 요청 타임아웃 설정
proxy_connect_timeout 60s;
proxy_read_timeout 120s;
proxy_send_timeout 60s;

# 버퍼 설정
proxy_buffer_size 128k;
proxy_buffers 4 256k;

# 헤더 설정
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Docker Container Browser

Docker 환경에서 프록시 대상 서버를 쉽게 선택할 수 있습니다.

Auto-Discovery

  • 실행 중인 Docker 컨테이너 자동 탐색
  • 컨테이너 이름, 이미지, 네트워크 정보 표시
  • NPG 자체 컨테이너(npg-*)는 자동 제외
  • 컨테이너의 IP 주소와 포트를 클릭하여 자동 입력

Container Info

필드설명
Name컨테이너 이름
ImageDocker 이미지
State실행 상태
Networks연결된 네트워크 및 IP
Ports노출된 포트

Host Cloning

기존 프록시 호스트를 복제하여 새로운 호스트를 빠르게 생성할 수 있습니다.

복제 기능

  • 원본의 모든 설정 복제: WAF, 봇 필터, GeoIP, Rate Limiting, 캐싱, 고급 설정 등
  • 새 도메인 지정: 복제 시 새로운 도메인 이름 입력
  • 포워딩 오버라이드: 대상 서버 주소/포트 변경 가능
  • 인증서 선택: 기존 인증서 사용, Let's Encrypt 새 발급, 자체 서명 중 선택

복제 시 설정 가능한 옵션

옵션설명기본값
도메인새 호스트의 도메인 이름 (필수)-
인증서인증서 연결 방식없음
프로토콜HTTP 또는 HTTPS원본과 동일
호스트백엔드 서버 주소원본과 동일
포트백엔드 서버 포트원본과 동일

Upstream Load Balancing

하나의 프록시 호스트에 다중 백엔드 서버를 구성하여 로드 밸런싱과 고가용성을 제공합니다.

Load Balancing Methods

방식설명
Round Robin순차적으로 서버에 요청 분배 (기본값)
Least Connections활성 연결이 가장 적은 서버에 분배
IP Hash클라이언트 IP 기반 고정 서버 할당 (세션 유지)
Random무작위 서버 선택

Upstream Server Settings

설정설명기본값
Address백엔드 서버 주소-
Port백엔드 서버 포트-
Weight가중치 (높을수록 많은 트래픽)1
Max Fails실패 허용 횟수1
Fail Timeout실패 후 비활성화 시간 (초)10
Backup백업 서버 여부false

Health Check

백엔드 서버의 상태를 주기적으로 확인하여 장애 서버를 자동으로 제외합니다.

설정설명기본값
활성화헬스 체크 사용 여부false
간격체크 주기 (초)30
타임아웃응답 대기 시간 (초)5
경로HTTP 헬스 체크 경로/
기대 상태 코드정상으로 판단할 HTTP 상태 코드200

Keepalive

  • Keepalive 연결 수: Upstream 서버와의 유휴 연결 수 설정
  • 연결 재사용으로 성능 향상
  • 기본값: 32개 연결

호스트 관리

즐겨찾기 / 고정

자주 관리하는 호스트를 목록 상단에 고정할 수 있습니다.

  • 별표 클릭으로 즐겨찾기 토글
  • 즐겨찾기 호스트는 목록 최상단에 표시
  • 정렬 상태와 무관하게 항상 상단 유지

활성화/비활성화

호스트를 삭제하지 않고 일시적으로 비활성화할 수 있습니다.

  • 비활성화 시 해당 호스트로의 트래픽 차단
  • 설정 보존
  • 빠른 활성화/비활성화 전환

설정 동기화

모든 프록시 호스트의 Nginx 설정을 동기화합니다.

  • 설정 변경 후 일괄 적용
  • 불일치 설정 수정
  • Nginx 재시작 없이 적용

호스트 테스트

프록시 설정이 올바르게 동작하는지 테스트합니다.

  • 백엔드 연결 확인
  • SSL/TLS 설정 검증
  • 응답 상태 확인

보안 설정 통합

각 프록시 호스트별로 독립적인 보안 설정을 적용할 수 있습니다.

호스트별 보안 기능

기능설명
WAF호스트별 WAF 모드 및 Paranoia Level
Rate Limiting호스트별 요청 제한
Fail2ban호스트별 자동 차단
봇 필터호스트별 봇 차단 규칙
GeoIP호스트별 지역 제한
URI 차단호스트별 경로 차단
보안 헤더호스트별 헤더 설정
챌린지호스트별 CAPTCHA 설정
클라우드 차단호스트별 클라우드 프로바이더 차단

SSL/TLS 설정

인증서 연결

  • Let's Encrypt 인증서 자동 연결
  • 커스텀 인증서 업로드
  • 자체 서명 인증서 생성

Force HTTPS

HTTP 요청을 HTTPS로 자동 리다이렉트합니다.

HTTP/2 & HTTP/3

  • HTTP/2 기본 활성화
  • HTTP/3 (QUIC) 지원
  • ALPN 프로토콜 협상

모범 사례

새 호스트 생성 시

  1. 기본 프록시 설정 구성
  2. SSL 인증서 발급/연결
  3. 보안 설정 (WAF, 봇 필터 등) 적용
  4. 테스트 후 활성화

문제 해결

  • 502 Bad Gateway: 백엔드 서버 연결 확인
  • 504 Gateway Timeout: 타임아웃 설정 증가
  • SSL 오류: 인증서 유효성 및 설정 확인
Nginx Proxy Guard - Modern & Secure Nginx Proxy Manager