NGINX 07 — Rate Limiting 실전: 관리자 로그인/특정 경로만 부드럽게 제한하기
구성도
핵심 정리
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: 너무 낮으면 정상 사용자가 불편하고, 너무 높으면 공격 완화 효과가 줄어듭니다.
- 차단/지연 시 응답 코드와 로그를 남겨 두면, 공격/오탐을 구분하기 쉽습니다.
참고 링크
'Tech Note > 서버-Nginx' 카테고리의 다른 글
| [실습] 10. Secure Link(만료 링크) + envsubst로 배포 자동화 (0) | 2026.01.04 |
|---|---|
| [실습] 08. Basic Auth로 빠른 접근 제어 적용 (0) | 2026.01.04 |
| [실습] 06. 설정 컨텍스트를 통한 http 블록 설정 (0) | 2026.01.04 |
| [실습] 05. split clients로 트래픽 분배 구성 (0) | 2026.01.04 |
| [실습] 04. NGINX 캐시 입문 (0) | 2026.01.04 |