이전 글에서는 주로 nginx 제한 연결 번호 ngx_http_limit_conn_module 모듈의 역할과 사용법에 대해 작성했습니다. 다음으로 ngx_http_limit_req_module 모듈의 역할과 사용법에 대해 작성하겠습니다.
ngx_http_limit_req_module 모듈은 정의된 키 값을 통해 요청 처리 빈도를 제한할 수 있습니다. 특히 단일 IP 주소의 요청이 처리되는 빈도를 제한할 수 있습니다. 제한 방법은 초당 고정된 수의 요청을 처리하고 과도한 요청을 연기하는 깔때기와 같습니다.
이 모듈은limit_req_zone 및limit_req라는 두 가지 구성 매개변수를 제공합니다. Limit_req_zone은 http{} 섹션에서만 구성할 수 있는 반면,limit_req는 http{}, server{} 및 location{} 섹션에서 구성할 수 있습니다. .
1.limit_req_zone
구문:limit_req_zone $variable z rate=rate;
구성 섹션: http
이 명령어는 공유 메모리 제한 필드를 설정하여 키 값의 상태 매개변수를 저장합니다. 특히 현재 요청 개수를 초과하는 개수가 저장됩니다. 키의 값은 지정된 변수입니다(컨트롤은 평가되지 않음). 예:
참고:
$binary_remote_addr 변수를 사용하면 각 상태 레코드의 크기를 64바이트로 줄일 수 있어 메모리 1M로 64바이트 레코드 약 16,000개를 저장할 수 있다
도메인의 저장 공간 소모가 제한되는 경우, 이후의 모든 요청에 대해 서버는 503(서비스를 일시적으로 사용할 수 없음) 오류를 반환합니다.
속도는 초당 처리되는 요청 수와 분당 처리되는 요청 수로 설정할 수 있으며 해당 값은 다음과 같아야 합니다. 정수이므로 초당 1개 미만의 요청을 처리하려면 2초에 하나의 요청을 처리해야 하는 경우 30r/m
2.limit_req
구문을 사용할 수 있습니다. Limit_req z 버스트=번호 [nodelay]
구성 섹션: http, 서버, 위치
해당 공유 메모리 제한 도메인과 처리할 수 있는 최대 요청 수를 설정합니다. 요청 빈도가 제한 도메인에 구성된 값을 초과하는 경우 모든 요청이 정의된 빈도로 처리되도록 요청 처리가 지연됩니다. 빈도 제한을 초과하는 요청은 지연된 요청 수가 정의된 임계값을 초과할 때까지 지연되며, 이때 요청은 종료되고 503(Service Temporarily Unavailable) 오류가 반환됩니다. 이 임계값의 기본값은 0입니다. 예:
빈도를 초당 1개 이하로 제한하고, 초과된 요청이 지연되는 것을 원하지 않으면 다음을 사용할 수 있습니다. nodelay 매개변수.
3. 구성 사용 예
limit_req_zone $binary_remote_addr z rate=1r/s
주로 변수, 공간 이름, 공유 메모리 크기를 정의하는 데 사용됩니다.
limit_req zburst=100 nodelay
주로 이전에 정의한 공간을 사용하여 요청 빈도 제한을 정의하는 데 사용됩니다. nodelay를 사용한다는 것은 초과된 요청이 지연되는 것을 원하지 않는다는 의미입니다.
일부 IP는 제한되지 않으며 화이트리스트를 사용해야 합니다.
모듈 주소: https://yunpan.cn/cqSKP6BrJ2AeT 접속 비밀번호 4f50
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
위 내용은 모듈과 nginx 내용을 포함하여 nginx 제한 요청 번호(ngx_http_limit_req_module) 모듈을 소개한 내용이므로 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.