[실습] 07. Rate Limiting 실전
2026. 1. 4. 21:00

NGINX 07 — Rate Limiting 실전: 관리자 로그인/특정 경로만 부드럽게 제한하기

nginx diagram
구성도

핵심 정리

1) Rate Limiting은 ‘차단’이 아니라 ‘제어’입니다

  • limit_req_zone으로 ‘누구를 기준으로’ 제한할지(키)를 정합니다.
  • limit_req로 ‘얼마나 자주’ 허용할지(rate)와 ‘얼마나 버퍼를 줄지’(burst)를 정합니다.
  • 정책을 전역에 걸기보다, 관리자 로그인 같은 민감 경로에만 적용하면 부작용이 적습니다.

2) 관리자 로그인(/admin/login)만 제한하는 패턴

영상에서는 Django 관리자 로그인 예시로 설명합니다.

# http 컨텍스트(공통 정책)에 zone 정의
limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;

server {
  location = /admin/login/ {
    limit_req zone=login burst=5 nodelay;
    proxy_pass http://django_upstream;
  }
}
운영 팁(꼭 확인해 주세요)
  • 키 선택: IP 기반 키는 NAT 환경에서 사용자들이 묶일 수 있으니 서비스 특성에 맞춰 조정합니다.
  • burst: 너무 낮으면 정상 사용자가 불편하고, 너무 높으면 공격 완화 효과가 줄어듭니다.
  • 차단/지연 시 응답 코드와 로그를 남겨 두면, 공격/오탐을 구분하기 쉽습니다.

참고 링크