ngx_stream_limit_conn_module

ngx_stream_limit_conn_module 모듈(1.9.3)은 각각 정의된 키에 대한 연결 수, 특히 IP 주소 한 개의 연결 수를 제한합니다.

예제 구성

stream {
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    ...

    server {

        ...

        limit_conn           addr 1;
        limit_conn_log_level error;
    }
}

Directives

Syntax:  limit_conn zone number;
Default: —
Context: stream, server

공유 메모리 영역과 특정 키 값에 대해 허용된 최대 연결 수를 설정합니다. 이 제한을 초과하면 서버가 연결을 종료합니다. 예를 들어

limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
    ...
    limit_conn addr 1;
}

이 명령은 IP 주소 1개당 한 번에 하나의 연결만 허용합니다.

여러 개의 limit_conn 명령을 지정할 경우, 구성된 제한이 적용됩니다.

이러한 명령은 현재 수준에서 limit_conn 명령이 정의되지 않은 경우에만 이전 구성에서 상속합니다.

Syntax:  limit_conn_dry_run on | off;
Default: limit_conn_dry_run off;
Context: stream, server
This directive appeared in version 1.17.6.

드라이 런 모드를 활성화합니다. 이 모드는 연결 수에 제한이 없습니다. 그러나 다른 경우와 마찬가지로 공유 메모리 영역에서 초과 연결 수를 반영합니다.

Syntax:  limit_conn_log_level info | notice | warn | error;
Default: limit_conn_log_level error;
Context: stream, server

서버가 연결 수를 제한하는 경우에 대해 원하는 로깅 수준을 설정합니다.

Syntax:  limit_conn_zone key zone=name:size;
Default: —
Context: strea

여러 가지 키에 대해 상태를 저장할 공유 메모리 영역의 매개변수를 설정합니다. 특히, 상태에는 현재 연결 수가 포함됩니다. key에는 텍스트, 변수 및 그 두 가지 조합을 포함할 수 있습니다(1.11.2). 빈 키 값이 있는 연결은 반영하지 않습니다. 사용 예제:

limit_conn_zone $binary_remote_addr zone=addr:10m;

키는 $binary_remote_addr 변수에서 설정한 클라이언트 IP 주소입니다. $binary_remote_addr의 용량은 IPv4 주소의 경우 4바이트, IPv6 주소의 경우 16바이트입니다. 저장된 상태는 항상 32비트 플랫폼에서 32 또는 64바이트를 차지하고, 64비트 플랫폼에서는 64바이트를 차지합니다. 1MB 영역은 32바이트 상태를 약 32,000개 저장할 수 있고, 64바이트 상태는 16,000개를 저장할 수 있습니다. 영역 스토리지를 모두 사용하면 서버가 연결을 종료합니다.

또한, 상업용 구독에서는 1.17.7 이후로 이러한 각각의 공유 메모리 영역에 대한 상태 정보를 API를 사용하여 가져오거나 재설정할 수 있습니다.

임베디드 변수

$limit_conn_status

연결 수를 제한한 결과 저장(1.17.6): PASSED, REJECTED 또는 REJECTED_DRY_RUN