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;
        }
    }
}

指令

keyval 指令

语 法:keyval key $variable zone=name;
默认值:—
上下文:http

创建一个新的 $variable,其值由键值数据库中的键查找。匹配规则由 keyval_zone 指令的类型参数定义。数据库存储在由 zone 参数指定的共享内存区域中。

keyval_zone 指令

语 法:keyval_zone zone=name:size [state=file] [timeout=time] [type=string|ip|prefix] [sync];
默认值:—
上下文:http

设置保存键值数据库的共享内存区域的名称和大小。键值对由 API 管理。

可选的 state 参数指定一个文件,该文件以 JSON 格式保存键值数据库的当前状态,并使其在 nginx 重启后保持持久。

例如:

keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; # path for Linux
keyval_zone zone=one:32k state=/var/db/nginx/state/one.keyval;  # path for FreeBSD

可选的 timeout 参数 (1.15.0) 设置从区域中删除键值对的时间。

可选的 type 参数 (1.17.1) 激活为匹配特定类型的键而优化的额外索引,并在计算 keyval $variable 时定义匹配规则。

索引存储在相同的共享内存区域中,因此需要额外的存储空间。

  • type=string 默认不启用索引;使用记录键和搜索键的精确匹配来执行变量查找

  • type=ip 搜索关键字是 IPv4 或 IPv6 地址或 CIDR 范围的文本表示;要匹配记录键,搜索键必须属于记录键指定的子网或与 IP 地址完全匹配

  • type=prefix 使用记录键和搜索键的前缀匹配来执行变量查找(1.17.5);要匹配记录键,记录键必须是搜索键的前缀

可选的同步参数 (1.15.0) 启用共享内存区域的同步。同步需要设置超时参数。

如果启用了同步,则仅在目标集群节点上执行键值对(无论是一对还是全部)的删除。其他集群节点上的相同键值对将在超时时被删除。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号