콘텐츠로 이동

Admin / Backoffice 서비스 Nginx 설정

Admin / Backoffice 서비스(관리자 페이지, 운영 콘솔, 내부 툴 등)를 제공하기 위한 Nginx 설정 기준 정의함. 일반 Web 서비스와 달리 보안 및 접근 통제가 중요한 Admin 서비스 특성을 반영함.


1. 적용 대상

  • 관리자 페이지
  • 운영 콘솔
  • 내부 관리 도구
  • 백오피스(Web 기반)

2. Admin 서비스 특성

Admin 서비스는 다음과 같은 특성을 가짐.

  • 일반 사용자 대상 아님
  • 접근 사용자 수 적음
  • 기능 영향 범위 큼
  • 보안 사고 시 피해 규모 큼
  • 성능보다 접근 통제와 안정성이 중요함

3. 서비스별 필수 설정

3.1 요청 크기 제한

관리 기능 특성상 파일 업로드가 포함될 수 있음.

client_max_body_size 50m;
  • 이미지 업로드, CSV 업로드 등 고려함
  • 대용량 업로드는 별도 서비스 분리 권장함

3.2 Timeout 정책

Admin 요청은 Web보다 다소 여유 있으나
Git/SVN 수준의 장시간 연결은 필요하지 않음.

proxy_connect_timeout 10s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
  • 관리 작업 중 과도한 대기 방지 목적

3.3 프록시 헤더 전달

proxy_set_header Host              $host;
proxy_set_header X-Real-IP         $remote_addr;
proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
  • 관리자 활동 로그 정확성 확보 목적

4. 접근 제어 기본 원칙

Admin 서비스는 접근 제어가 필수임.

  • 사내망 / VPN 전용 접근 권장함
  • IP allowlist 또는 인증 정책 병행 권장함
  • 접근 제어 세부 정책은 보안 문서에서 정의함

본 문서에서는 접근 제어 방식의 존재 원칙만 정의함.


5. 권장 server 설정 예시

server {
    listen 443 ssl;
    server_name admin.example.com;

    client_max_body_size 50m;

    location / {
        proxy_pass http://ADMIN_BACKEND_UPSTREAM;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

6. 운영 점검 항목

  • 외부 접근 로그 주기적 점검 필요함
  • 관리자 계정 로그인 실패 빈도 모니터링 필요함
  • 업로드 기능 사용 시 파일 크기 및 유형 점검 필요함

7. Admin 트래픽 특성 및 rate / connection limit 적용 기준

7.1 Admin 트래픽 특성

  • 요청 빈도 낮음
  • 연결 수 적음
  • 사용자 행동 기반 트래픽
  • 자동화 트래픽 거의 없음

7.2 rate / connection limit 적용 원칙

  • rate limit은 완화된 값으로 적용
  • connection limit은 낮은 값으로도 충분함
  • 과도한 제한은 관리자 작업 방해 가능성 있음

7.3 일반적인 권장 수치 예시 (참고)

limit_conn conn_limit 5;
limit_req zone=req_limit burst=10 nodelay;

전제: req_limit, conn_limit zone은 04-Nginx Global 설정 (공통 기반)에서 먼저 정의되어 있어야 함.

  • Admin 서비스 기준 예시임
  • 사용자 수가 매우 적은 환경 기준임

7.4 상황별 적용 예시

1) 사내 전용 Admin 서비스

  • 목적: 기본 안정성 확보
  • 권장 방향:
    • limit_conn: 5 ~ 10 수준
    • limit_req: 매우 완화

2) 외부 접근 가능 Admin 서비스 (권장하지 않음)

  • 목적: 최소한의 방어
  • 권장 방향:
    • limit_conn: 3 ~ 5 수준
    • IP 제한 / MFA 필수
    • limit_req: 반드시 적용

8 정리

  • Admin 서비스는 보안 우선, 성능 후순위
  • 접근 제어 없는 Admin 서비스는 운영 리스크 큼
  • rate / connection limit은 보조적 안전장치임