이러한 모듈 모두 컴파일됩니다 Nginx로 기본적으로 모듈을 수동으로 제외 하도록 지정 하지 않으면 구성.
이 모듈을 사용 하면 지정 된 세션 또는 특별 한 경우에 대 한 요청 수를 제한할 수 있습니다.
샘플 구성
http {limit_req_zone $binary _remote_addr 영역 = 1:10 m 속도 = 1r/s;... 위치/검색 / {limit_req Zon E 한 버스트 = = 5; }
지침
Limit_req_log_level
구문: Limit_req_log_level 정보 | 통지 | 경고 | 오류
기본값: 경고
필드 작업: HTTP
로깅 수준을 지정합니다.
Limit_req_zone
구문: Limit_req_zone $session _variable 영역 = name_of_zone:size 속도 = 속도
기본값: 없음
필드 작업: HTTP
명령 세션 상태 저장소 영역을 설명합니다.
명령 세션 상태 저장소의 영역을 설명 하 고 세션의 값은 다음 예제와 같이 주어진된 변수에 기반:
limit_req_zone $binary _remote_addr 영역 = 1:10 m 속도 = 1r/s;
10 MB 할당 됩니다이 경우에, "하나" 라는 영역에는 평균 쿼리 속도가 초 당 최대 요청이.
세션은 각 사용자를 추적 하지만 $remote_addr 변수 대체, 우리는 64 바이트, 세션 크기를 줄이기 위해 $BINARY_REMOTE_ADDR을 사용 하 고 1 MB 범위 약 16000 세션 상태에 포함 될 수 있습니다.
속도 분당, 처리 된 요청 수가 초당 처리 된 요청 수를 설정할 수 있으며 값은 정수 여야 합니다. 요청을 처리할 초당, 2 초 미만 1 요청을 처리 하도록 요청을 지정 해야 하는 경우 "30r/m"를 사용할 수 있습니다.
32000 세션 세션 상태 저장 영역 32 바이트의 각 세션 크기 1m, 경우에 이론적으로 처리할 수 있습니다.
Limit_req
구문: Limit_req 영역 버스트 = = 버스트 [Nodelay]
기본값: 없음
필드 작업: HTTP, 서버, 위치
이 명령 가능한 최대 요청 버스트 값을 지정 합니다 (버스트) 영역 (영역), 그리고 주어진된 속도에서 쿼리가 처리 되도록 요청 지연 값이이 숫자를 초과 하면. 때까지 그들의 번호 경우 요청 "서비스를 사용할 수 없음" (503)을 얻을 것 이다 버스트 값 보다 작으면 추가 요청 지연 됩니다 버스트 기본값 0 사용 하 여 코드.
다음 예제에서는:
limit_req_zone $binary _remote_addr 영역 = 1:10 m 속도 = 1r/s; 서버 {위치/검색 / {limit_req 영역 한 버스트 = = 5;}
추가 요청 버스트 값 밖에 사용할 수 없는 경우 Nodelay 매개 변수를 사용 하는 동시에 최대 5 쿼리를 처리할 수 있는 초당, 1 개 이상 요청을 처리 한 명의 사용자를 허용:
limit_req 영역 한 버스트 = = 5 nodelay;