IP 중복 요청 같은 URL 지정 시간 대 요청 횟수 제한
4424 단어 nginx
nginx IP
nginx 는 IP 가 지정 한 시간 대의 요청 횟수 를 제한 할 수 있 습 니 다.https://blog.csdn.net/xj626852095/article/details/51155875 http{ ...
#세 션 을 저장 하기 위해 allips 라 는 limit req zone 을 정의 합 니 다. 크기 는 10M 메모리 입 니 다. #$biary remote addr 를 key 로 하고 1 초 평균 요청 을 20 개 로 제한 합 니 다. #1M 는 16000 개의 상 태 를 저장 할 수 있 습 니 다. rete 의 값 은 정수 여야 합 니 다. #요청 을 2 초 동안 제한 하면 30r / m 로 설정 할 수 있 습 니 다.
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s; ... server{ ... location { ...
#ip 당 1 초 에 20 개 요청 을 초과 하지 않도록 제한 합 니 다. 누 출 통 수 burst 는 5 입 니 다. #brust 는 1 초, 2, 3, 4 초 에 19 개 를 요청 하면 #5 초의 요청 은 25 개 로 허용 된다. #하지만 1 초 에 25 개의 요청 이 있 으 면 2 초 에 20 이 넘 는 요청 은 503 오 류 를 되 돌려 줍 니 다. #nodelay, 이 옵션 을 설정 하지 않 으 면 평균 속도 제한 요청 수 를 엄 격 히 사용 합 니 다. #1 초 25 개 요청 시 5 개 요청 을 2 초 에 실행, #nodelay 를 설정 하면 25 개의 요청 이 1 초 에 실 행 됩 니 다.
limit_req zone=allips burst=5 nodelay; ... } ... } ... }
인터넷 에서 찾 은 것 은 이 설정 뿐 입 니 다. 이것 은 IP 의 요청 속 도 를 제한 할 수 있 습 니 다. 중복 요청 을 구분 할 수 없습니다. 설명 에서 \ # $biary remote addr 를 key 로 하고 평균 초당 요청 을 20 개 로 제한 합 니 다. 그러면 다른 변 수 를 key 로 하면 이 수 요 를 만족 시 킬 수 있 습 니까? 그래서 다음 글 을 찾 았 습 니 다.
https://blog.csdn.net/qwed070/article/details/74994085
arg PARAMETER \ # 이 변 수 는 GET 요청 을 포함 합 니 다. 변수 가 있 으 면 PARAMETER 의 값 입 니 다. args \ # 이 변 수 는 요청 줄 의 (GET 요청) 인자 와 같 습 니 다. 예 를 들 어 foo = 123 & bar = blahblah; binary remote addr \ # 바 이 너 리 클 라 이언 트 주소 입 니 다. body bytes sent \ # 응답 시 보 내 는 body 바이트 수 입 니 다. 연결 이 끊 겨 도 이 데 이 터 는 정확 합 니 다. content length \ # 요청 헤더 의 Content - length 필드 입 니 다. content type \ # 요청 헤더 의 Content - type 필드 입 니 다. cookie COOKIE \ # cookie COOKIE 변수의 값 document root \ # 현재 루트 명령 에서 지정 한 값 을 요청 합 니 다. document uri \ # uri 와 같 습 니 다. host \ # 호스트 헤드 필드 를 요청 합 니 다. 그렇지 않 으 면 서버 이름 입 니 다. hostname #Set to themachine’s hostname as returned by gethostname http_HEADER is args \ # args 인자 가 있 으 면 이 변 수 는 '?' 와 같 습 니 다. 그렇지 않 으 면 '빈 값' 과 같 습 니 다. http user agent \ # 클 라 이언 트 에이전트 정보 http cookie \ # 클 라 이언 트 쿠키 정보 limit rate \ # 이 변 수 는 연결 속 도 를 제한 할 수 있 습 니 다. query string \ # args 와 같 습 니 다. request body file \ # 클 라 이언 트 가 주체 정 보 를 요청 하 는 임시 파일 이름 입 니 다. request method \ # 클 라 이언 트 가 요청 한 동작 은 보통 GET 나 POST 입 니 다. reote addr \ # 클 라 이언 트 의 IP 주소 입 니 다. reote port \ # 클 라 이언 트 의 포트 입 니 다. reote user \ # Auth Basic Module 에서 검 증 된 사용자 이름 입 니 다. request completion \ # 요청 이 끝나 면 OK 로 설정 합 니 다. 요청 이 끝나 지 않 았 거나 요청 체인 문자열 의 마지막 이 아니라면 비어 있 습 니 다 (Empty). request method \ # GET 또는 POST request filename \ # 현재 요청 한 파일 경 로 는 루트 나 alias 명령 과 URI 요청 으로 생 성 됩 니 다. request uri \ # 요청 매개 변 수 를 포함 하 는 원본 URI 입 니 다. 호스트 이름 은 포함 되 지 않 습 니 다. 예 를 들 어 "/ foo / bar. php? arg = baz" 와 같 습 니 다. 수정 할 수 없습니다. scheme \ # HTTP 방법 (예: http, https). server protocol \ # 사용 을 요청 하 는 프로 토 콜 은 보통 HTTP / 1.0 또는 HTTP / 1.1 입 니 다. server addr \ # 서버 주 소 는 시스템 호출 을 완료 한 후에 이 값 을 확인 할 수 있 습 니 다. server name \ # 서버 이름 입 니 다. server port \ # 서버 에 도착 할 포트 번 호 를 요청 합 니 다.
어떻게 IP 와 uri 의 key 를 연결 합 니까? 나 는 따옴표 를 붙 여 두 변 수 를 싸 야 한다 고 생각 했 는데 안 되 는 것 을 발 견 했 습 니 다. 이 방법 이 안 될 줄 알 고 다른 방법 을 찾 아 보 았 지만 찾 지 못 했 습 니 다. 나중에 다시 여기 로 돌아 와 서 두 변 수 를 직접 써 보 았 는데 효과 가 있 을 줄 몰 랐 습 니 다.
최종 설정:
http{ ...
#세 션 을 저장 하기 위해 allips 라 는 limit req zone 을 정의 합 니 다. 크기 는 10M 메모리 입 니 다. #$biary remote addr 를 key 로 하고 1 초 평균 요청 을 20 개 로 제한 합 니 다. #1M 는 16000 개의 상 태 를 저장 할 수 있 습 니 다. rete 의 값 은 정수 여야 합 니 다. #요청 을 2 초 동안 제한 하면 30r / m 로 설정 할 수 있 습 니 다.
limit_req_zone $binary_remote_addr$request_uri zone=allips:10m rate=20r/s; ... server{ ... location { ...
#ip 당 1 초 에 20 개 요청 을 초과 하지 않도록 제한 합 니 다. 누 출 통 수 burst 는 5 입 니 다. #brust 는 1 초, 2, 3, 4 초 에 19 개 를 요청 하면 #5 초의 요청 은 25 개 로 허용 된다. #하지만 1 초 에 25 개의 요청 이 있 으 면 2 초 에 20 이 넘 는 요청 은 503 오 류 를 되 돌려 줍 니 다. #nodelay, 이 옵션 을 설정 하지 않 으 면 평균 속도 제한 요청 수 를 엄 격 히 사용 합 니 다. #1 초 25 개 요청 시 5 개 요청 을 2 초 에 실행, #nodelay 를 설정 하면 25 개의 요청 이 1 초 에 실 행 됩 니 다.
limit_req zone=allips burst=5 nodelay; ... } ... } ... }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.