본문 바로가기
Q&A2022년 7월 14일1분 읽기

Nginx에서 rate limiting 설정하는 법

권
권도현
조회 494댓글 4

API 서버에 요청이 너무 많이 들어와서 rate limiting을 걸고 싶습니다. Nginx에서 어떻게 설정하나요?

댓글 4

김김영삼4년 전

Nginx rate limiting 설정:

# nginx.conf 또는 sites-available

# 1. limit zone 정의 (http 블록)
http {
# IP당 초당 10개 요청
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;

# IP당 동시 연결 30개
limit_conn_zone $binary_remote_addr zone=conn:10m;
}

# 2. server/location에 적용
server {
location /api/ {
limit_req zone=api burst=20 nodelay;
limit_conn conn 30;

# 초과 시 429 반환
limit_req_status 429;
limit_conn_status 429;

proxy_pass http://localhost:3000;
}
}

파라미터 설명:

  • rate=10r/s — 초당 10개 요청 허용
  • burst=20 — 순간적으로 20개까지 대기열 허용
  • nodelay — 대기 없이 즉시 처리 (초과분만 거부)

DDoS 기본 방어 + API 남용 방지에 효과적입니다.

최최유진(guest)4년 전
저도 궁금했던 건데 해결됐습니다.
탁탁세은(guest)4년 전
자세한 설명 감사합니다.
구구자현(guest)4년 전
바로 적용해봤는데 잘 되네요!
Ctrl+Enter로 등록