nginx 접속 층 제한 흐름
6559 단어 nginx
Nginx 접속 층 의 흐름 제한 에 대해 Nginx 자체 테이프 의 두 모듈 을 사용 할 수 있 습 니 다: 연결 수 제한 모듈(ngx http limit conn module 과 누 출 통 알고리즘 이 구현 하 는 요청 스 트림 모듈 ngx http limit req module. limit conn 은 특정한 key 에 대응 하 는 총 네트워크 연결 수 를 제한 하 는 데 사용 되 며 IP, 도 메 인 이름 차원 에 따라 스 트림 을 제한 할 수 있 습 니 다. limit req 는 특정한 key 에 대응 하 는 요청 의 평균 속 도 를 제한 하 는 데 사 용 됩 니 다. 두 가지 방법:
limit conn 은 특정한 key 에 대응 하 는 총 네트워크 연결 수 를 제한 합 니 다. IP 에 따라 IP 차원 의 총 연결 수 를 제한 하거나 서비스 도 메 인 이름 에 따라 도 메 인 이름 의 총 연결 수 를 제한 할 수 있 습 니 다. 이 모듈 은 두 개의 설정 파 라미 터 를 제공 합 니 다. liit conn zone 과 limit conn 은 http {} 세그먼트 에 만 설정 할 수 있 고 limit conn 은 http {}, server {} 과 설정 할 수 있 습 니 다., location {} 구간 중.
1.1.1 제3자 모듈 컴 파일 설치 매개 변수:
# ./configure –prefix=/usr/local/nginx –-add-module=./nginx_limit_speed_module-master
# make
make , make install , , 。
/usr/local/nginx/sbin/nginx -V, ngx_cache_purge 。
1.1.2 ngx http limit req module 모듈 명령
1.1.2.1 limit_req_zone
문법: limit req zone $variable zone = name: size rate = rate; 기본 값: none 설정 세그먼트: http
:
- $variable 정의 키 - zone = name 정의 영역 이름, 뒤의 limit conn 명령 은 - size: 각 키 공유 메모리 공간 크기 :
를 정의 합 니 다.limit_req_zone $binary_remote_addr zone=addr:10m rate=1r/s;
클 라 이언 트 의 IP 주 소 를 키 로 합 니 다. remote addr 변 수 는 remoteaddr 변수 가 아 닌 binary remote addr 변 수 를 사용 합 니 다. - r e m o t e a d r 변 수 는 7 바이트 에서 15 바이트 까지 사용 합 니 다. 저장 상 태 는 32 비트 플랫폼 에서 32 바이트 나 64 바이트 로 64 비트 플랫폼 에서 64 바이트 입 니 다. - $binary remote addr 변 수 는 4 글자 로 고정 되 어 있 습 니 다.섹 션, 저장 상 태 는 32 비트 플랫폼 에서 32 바이트 또는 64 바 이 트 를 차지 하고 64 비트 플랫폼 에서 64 바 이 트 를 차지 합 니 다. 1M 공유 공간 은 32 비트, 1 만 6000 개의 64 비트 상 태 를 저장 할 수 있 습 니 다. 공유 메모리 공간 이 소 진 되면 서버 는 후속 모든 요청 에 대해 503 (Service Temporarily Unavailable) 오 류 를 되 돌려 줍 니 다.
1.1.2.2 limit_conn_log_level
문법: limit conn log level info | notice | warn | error 기본 값: error 설정 단계: http, server, location 최대 제한 연결 수 에 도달 하면 로그 의 등급 을 기록 합 니 다.
1.1.2.3 limit_conn
문법: limit conn zone name number 기본 값: none 설정 세그먼트: http, server, location 은 주어진 키 의 최대 동시 연결 수 를 지정 합 니 다. 이 숫자 를 초과 하면 503 으로 되 돌아 갑 니 다. 예 를 들 어
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location /www.ttlsa.com/ {
limit_conn addr 1;
}
}
같은 IP 같은 시간 에 하나의 연결 만 허용 합 니 다. 여러 limit conn 명령 이 설정 되 었 을 때 모든 연결 수 제한 이 적 용 됩 니 다. 예 를 들 어 아래 설정 은 단일 IP 소스 의 연결 수 를 제한 할 뿐만 아니 라 단일 가상 서버 의 총 연결 수도 제한 합 니 다.
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server {
limit_conn perip 10;
limit_conn perserver 100;
}
1.1.2.4 limit_conn_status
문법: limit conn status code; 기본 값: limit conn status 503; 설정 세그먼트: http, server, location
이 지정 은 1.3.15 버 전에 서 도입 되 었 습 니 다. 제한 을 초과 할 때 되 돌아 오 는 상태 코드 를 지정 합 니 다. 기본 값 은 503 입 니 다.
1.1.2.5 limit_rate
문법: limit rate 기본 값: 0 설정 세그먼트: http, server, location, if in location 은 모든 연결 의 속 도 를 제한 합 니 다. 매개 변수 rate 의 단 위 는 바이트 / 초 이 며 0 으로 설정 하면 속 도 를 제한 합 니 다. IP 제한 이 아 닌 연결 제한 속도 로 설정 합 니 다. 따라서 한 클 라 이언 트 가 두 개의 연결 을 동시에 열 면 클 라 이언 트 의 전체 속 도 는 이 명령 설정 값 의 2 배 입 니 다.。
1.1.2.6 인 스 턴 스 버 전 완성
http {
limit_conn_zone $binary_remote_addr zone=limit:10m;
limit_conn_log_level info;
server {
location ^~ /download/ {
limit_conn limit 4;
limit_rate 200k;
}
}
}
1.1.2.7 limit conn 실행 프로 세 스
1. 들 어 오 기 를 요청 한 후 현재 limit conn zone 에서 해당 key 의 연결 수가 설정 의 최대 연결 수 2 를 초과 하 는 지, 설정 의 최대 크기 를 초과 하면 흐름 이 제한 되 어 limit conn status 가 정의 한 오류 상태 코드 를 되 돌려 줍 니 다. 그렇지 않 으 면 해당 key 의 연결 수 에 1 을 추가 하고 요청 처리 가 완 료 된 리 셋 함 수 를 등록 합 니 다. 3. 요청 처리 4. 기술 요청 4.단계 호출 등 록 된 리 셋 함수 가 해당 키 의 연결 수 를 1 로 줄 입 니 다.
1.2 ngx_http_limit_req_module
limit req 는 누 통 알고리즘 이 실현 되 고 지정 한 key 에 대응 하 는 요청 을 제한 합 니 다. 예 를 들 어:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
...
location /limit {
limit_req zone=one burst=5 nodelay;
}
매개 변수 설명:
limit_req_zone:
limit_req:
limit_req
의 주요 집행 과정 은 다음 과 같다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.