http {
server {
...
location / {
limit_rate 100k; # 100 KB/s의 속도로 제한
}
}
}
요청에 대한 속도제한
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
...
location /api/ {
limit_req zone=one burst=5 nodelay;
}
}
}
$binary_remote_addr : 클라이언트의 ip 주소를 기반으로 제한 설정 $remote_addr 보다 메모리 사용량이 적어서 효율적
zone=one:10m one이라는 이름의 메모리영역에 10MB의 메모리 할당
rate=1r/s 클라이언트당 요청 비율을 초당 1개로 설정 -> 이렇게 하면 각 ip 주소에서 /api/로 1초에 한 번만 요청을 허용
location /api/
/api/ 경로에 대한 설정
zone=one 을 참조하여 이 루트의 요청을 제어
burst=5 대기열 용량을 5개의 추가 요청으로 설정
nodelay 일반 상황이 아닌, 대기열에 요청이 밀려 있는 경우 바로바로 큐된 요청들을 처리한다
'nginx' 카테고리의 다른 글
| 페이지가 작동하지 않습니다 ERR_EMPTY_RESPONSE (2) | 2024.11.25 |
|---|---|
| nginx health check (로드밸런서 사용 시 health check 실패인 경우) (0) | 2024.05.09 |
| Nginx 용량 설정 (0) | 2024.04.30 |



