nginx 제한 요청 수 ngxhttp_limit_req_모듈 모듈

머리말
'nginx 제한 연결 수 ngx http limit conn module 모듈' 에서 우 리 는 ngxhttp_limit_conn_module 모듈 로 연결 수 를 제한 합 니 다.그러면 청구 수의 제한 은 어떻게 해 야 하나 요?이 건 ngx 를 통 해http_limit_req_module 모듈 로 구현 되 며, 이 모듈 은 정 의 된 키 값 을 통 해 요청 처리 빈 도 를 제한 할 수 있 습 니 다.특히 단일 IP 주소 에서 요청 처리 빈 도 를 제한 할 수 있 습 니 다.제한 하 는 방법 은 깔때기 와 같 아서 1 초 에 요청 수 를 고정 적 으로 처리 하고 너무 많은 요청 을 연기 합 니 다.
둘. ngx_http_limit_req_모듈 모듈 명령 어
limit_req_zone 문법: limitreq_zone $variable zone=name:size rate=rate;기본 값: none 설정 세그먼트: http 공유 메모리 제한 도 메 인 을 설정 하여 키 값 을 저장 하 는 상태 매개 변 수 를 설정 합 니 다.특히 현재 요청 을 초과 한 수량 을 저장 하 였 습 니 다.키 의 값 은 지정 한 변수 입 니 다.... 와 같다
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
설명: 지역 이름 은 원 이 고 크기 는 10m 이 며 평균 처리 요청 빈 도 는 초당 한 번 을 초과 할 수 없습니다.키 값 은 클 라 이언 트 IP 입 니 다.$binary 사용remote_addr 변 수 는 각 상태 기록 의 크기 를 64 바이트 로 줄 일 수 있 습 니 다. 그러면 1M 의 메모리 가 약 1 만 6 천 개의 64 바이트 기록 을 저장 할 수 있 습 니 다.제한 필드 의 저장 공간 이 다 소모 되면 후속 모든 요청 에 대해 서버 는 503 (Service Temporarily Unavailable) 오 류 를 되 돌려 줍 니 다.속 도 는 초당 처리 요청 수 와 분당 처리 요청 수로 설정 할 수 있 습 니 다. 그 값 은 정수 여야 합 니 다. 따라서 초당 처리 가 1 개 이하 인 요청 을 지정 해 야 한다 면 2 초 에 하나의 요청 을 처리 하고 '30r / m' 를 사용 할 수 있 습 니 다.
limit_req_log_level 문법: limitreq_log_level info | notice | warn | error;기본 값: limitreq_log_level error;설정 단계: http, server, location 에서 원 하 는 로그 단 계 를 설정 합 니 다. 서버 가 주파수 가 너무 높 아서 요청 을 거부 하거나 지연 시 킬 때 해당 단계 의 로 그 를 기록 할 수 있 습 니 다.기록 을 지연 시 키 는 로그 단 계 는 거부 하 는 것 보다 한 단계 낮 습 니 다.예 를 들 어 'limit req log level notice' 를 설정 하면 지연 로 그 는 info 단계 입 니 다.
limit_req_status 문법: limitreq_status code;기본 값: limitreq_status 503;설정 세그먼트: http, server, location 이 명령 은 1.3.15 버 전에 도입 되 었 습 니 다.요청 을 거부 하 는 응답 상태 코드 를 설정 합 니 다.
limit_req 문법: limitreq zone=name [burst=number] [nodelay];기본 값: - 설정 단계: http, server, location 에 대응 하 는 공유 메모리 제한 영역 과 처 리 될 수 있 는 최대 요청 수 한도 값 을 설정 합 니 다.요청 한 주파수 가 제한 도 메 인 설정 값 을 초과 하면 요청 처리 가 지연 되 기 때문에 모든 요청 은 정 의 된 주파수 로 처 리 됩 니 다.주파수 제한 을 초과 한 요청 은 지 연 된 요청 수가 정 의 된 한도 값 을 초과 할 때 까지 지 연 됩 니 다. 이 요청 은 종료 되 고 503 (Service Temporarily Unavailable) 오 류 를 되 돌려 줍 니 다.이 한도 값 의 기본 값 은 0 이다.예:
limit_req_zone $binary_remote_addr zone=ttlsa_com:10m rate=1r/s;
server {
    location /www.ttlsa.com/ {
        limit_req zone=ttlsa_com burst=5;
    }
}

1 초 에 한 개의 요청 을 초과 하지 않 고 주파수 제한 을 초과 할 수 있 도록 제한 하 는 요청 수 는 5 개 이상 이 어야 한다.초과 요청 이 지연 되 지 않 으 려 면 nodelay 인 자 를 사용 할 수 있 습 니 다. 예 를 들 어:
limit_req zone=ttlsa_com burst=5 nodelay;
3. 전체 인 스 턴 스 설정
http {
 limit_req_zone $binary_remote_addr zone=ttlsa_com:10m rate=1r/s;
 
 server {
 location  ^~ /download/ {  
 limit_req zone=ttlsa_com burst=5;
 alias /data/www.ttlsa.com/download/;
        }
 }
}

일부 IP 에 제한 을 두 지 않 고 화이트 리스트 에 사용 해 야 할 수도 있 습 니 다.명단 설정 은 후속 문 서 를 참고 하여 독자 들 이 참고 할 수 있 도록 정리 하 겠 습 니 다.집중 하 세 요.

좋은 웹페이지 즐겨찾기