模块 ngx_stream_keyval_module
Example Configuration Directives keyval keyval_zone |
该模块 (1.13.7) 创建变量,其值取自APIngx_stream_keyval_module
管理的键值对
,或者也可以使用njs
设置的变量
。
该模块作为我们商业订阅 的一部分提供 。
配置示例
http { server { ... location /api { api write=on; } } } stream { keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; keyval $ssl_server_name $name zone=one; server { listen 12345 ssl; proxy_pass $name; ssl_certificate /usr/local/nginx/conf/cert.pem; ssl_certificate_key /usr/local/nginx/conf/cert.key; } }
指令
句法: |
keyval
|
---|---|
默认: | — |
语境: |
stream |
创建一个新值,其值由键值数据库中的$variable
查找。匹配规则由指令的参数
key
定义
。数据库存储在参数指定的共享内存区域中。
type
keyval_zone
zone
句法: |
keyval_zone
|
---|---|
默认: | — |
语境: |
stream |
设置保存键值数据库的共享内存区域的name
和。size
键值对由
API管理。
可选state
参数指定 a file
,以 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);要匹配记录键,记录键必须是搜索键的前缀
可选sync
参数 (1.15.0) 启用
共享内存区域的同步。同步需要
timeout
设置参数。
如果启用同步,则仅在目标集群节点上删除
键值对(无论是
一个
还是
全部)。其他集群节点上的相同键值对将在 时被删除timeout
。