ngx_http_keyval_module

ngx_http_keyval_module 모듈(1.13.3)은 API에서 관리하는 키-값 쌍에서 가져온 값으로 변수를 생성하거나, njs로도 설정할 수 있는 변수(1.15.10)로 생성합니다.

이 모듈은 상업용 구독에서 제공합니다.

예제 구성

http {

    keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval;
    keyval $arg_text $text zone=one;
    ...
    server {
        ...
        location / {
            return 200 $text;
        }

        location /api {
            api write=on;
        }
    }
}

Directives

Syntax:  keyval key $variable zone=name;
Default: —
Context: http

새로운 $variable을 생성합니다. 이 값은 키-값 데이터베이스에서 key로 검색합니다. 매칭 규칙은 keyval_zone 명령의 type 매개변수로 정의합니다. 이 데이터베이스는 zone 매개변수에서 지정한 공유 메모리 영역에 저장됩니다.

Syntax:  keyval_zone zone=name:size [state=file] [timeout=time] [type=string|ip|prefix] [sync];
Default: —
Context: http

키-값 데이터베이스를 저장하는 공유 메모리 영역의 namesize를 설정합니다. 키-값 쌍은 API에서 관리합니다.

state 매개변수 옵션은 키-값 데이터베이스의 현재 상태를 JSON 형식으로 저장하는 file을 지정하고, nginx를 재시작할 때 유지합니다.

예:

Syntax:  keyval_zone zone=name:size [state=file] [timeout=time] [type=string|ip|prefix] [sync];
Default: —
Context: http

timeout 매개변수 옵션(1.15.0)은 영역에서 키-값 쌍을 제거한 이후의 시점을 설정합니다.

type 매개변수 옵션(1.17.1)은 특정 유형의 키를 매칭하는 데 최적화된 추가적 인덱스를 활성화하고 keyval $variable를 평가할 때 매칭 규칙을 정의합니다.

이 인덱스는 동일한 공유 메모리 영역에 저장되므로 추가적 스토리지가 필요합니다.

type=string

기본값, 인덱스가 활성화되지 않습니다. 레코드 키와 검색 키를 정확히 매칭시켜 변수를 검색합니다.

type=ip

검색 키는 IPv4, IPv6 주소나 CIDR 범위를 텍스트로 표현한 것입니다. 레코드 키를 매칭하기 위해 검색 키는 레코드 키에서 지정한 서브넷에 속하거나 IP 주소를 정확히 매칭해야 합니다.

type=prefix

레코드 키와 검색 키의 접두사를 매칭시켜 변수를 검색합니다(1.17.5). 레코드 키를 매칭하려면 레코드 키가 검색 키의 접두사가 되어야 합니다.

sync 매개변수 옵션(1.15.0)은 공유 메모리 영역을 동기화합니다. 동기화 시 timeout 매개변수를 설정해야 합니다.

동기화를 활성화하면 대상 클러스터 노드에서만 키-값 쌍(한 개 또는 전체)이 제거됩니다. 다른 클러스터 노드의 동일한 키-값 쌍은 timeout 이후에 제거됩니다.

Comments are closed.