ngx_http_limit_conn_module은 비정상적인 트래픽, 과도한 부하 또는 대규모 트래픽의 악의적인 공격 액세스가 있는 일부 서버에 대해 동시성 수를 제한합니다. 이 모듈은 정의된 키만을 기준으로 각 키 값에 대한 연결 수를 제한할 수 있습니다. 요청이 처리 중인 연결(헤더 정보가 완전히 읽혀진 연결)이 계산됩니다.
이 모듈은limit_conn_zone과limit_conn이라는 두 가지 구성 매개변수를 제공합니다. Limit_conn_zone은 http{} 섹션에서만 구성할 수 있는 반면,limit_conn은 http{}, server{} 및 location{} 섹션에서 구성할 수 있습니다. .
1.limit_conn_zone
구문:limit_conn_zone $variablez
구성 섹션: http
이 지시문은 세션 상태 저장 영역을 설명합니다. 현재 연결 수는 키 상태에 저장되며, 키 값은 특정 변수의 null이 아닌 값일 수 있습니다(null 값은 고려되지 않음). $variable은 키를 정의하고, z는 영역 이름을 정의하며, 주요 기능은 뒤에 오는 Limit_conn입니다. size는 다음과 같이 각 키에 대한 공유 메모리 공간의 크기를 정의합니다.
참고:
클라이언트의 IP 주소가 키로 사용됩니다. . 여기서는 remote_addr 변수가 아닌 Binary_remote_addr 변수가 사용된다는 점에 유의하세요.
Remote_addr 변수의 길이 범위는 7바이트에서 15바이트이며, 저장 상태는 32비트 플랫폼에서는 32바이트 또는 64바이트, 64비트 플랫폼에서는 64바이트를 차지합니다.
Binary_remote_addr 변수의 길이는 4바이트로 고정되어 있으며, 저장 상태는 32비트 플랫폼에서는 32바이트, 64바이트, 64비트 플랫폼에서는 64바이트를 차지합니다.
1M 공유 공간은 32,000개의 32비트 상태와 16,000개의 64비트 상태를 저장할 수 있습니다.
공유 메모리 공간이 소진되면 서버는 모든 후속 요청에 대해 503(서비스를 일시적으로 사용할 수 없음) 오류를 반환합니다.
2.limit_conn
구문:limit_conn zone_name번호
구성 섹션: http, 서버, 위치
이 지시문은 주어진 각 키 값에 대한 최대 동시 연결 수를 지정합니다. 이 수를 초과하면 503(서비스) 오류가 반환됩니다. 예(동일 IP는 동시에 20개만 연결 가능):
3. 구성 사용 예시
limit_conn_zone $ 바이너리_원격_주소 z
주로 변수, 영역 이름, 공유 메모리 크기를 정의하는 데 사용됩니다.
limit_conn showjoy_conn
앞서 정의한 showjoy_conn을 설정하고 동일 IP에 대한 동시 접속 수를 20개로 제한
4. 사용 시 주의 사항
트랜잭션에는 의 양면. ngx_http_limit_conn_module 모듈은 현재 동시성 문제를 해결할 수 있지만 다른 문제를 야기합니다. 예를 들어 프런트엔드가 LVS나 역생성 기능을 하고 우리 백엔드가 이 모듈 기능을 활성화한다면 503 오류가 많이 발생하지 않을까? 이 경우 프런트 엔드에서 모듈을 활성화하거나 화이트리스트를 설정할 수 있습니다.
모듈 주소: 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_conn_module) 모듈을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.