介绍
- 安装 Nginx
- 从源码构建 Nginx
- 初学者指南
- 控制 nginx
- 连接处理方式
- 设置哈希
- 调试日志
- 记录日志到 syslog
- 配置文件度量单位
- 命令行参数
- Windows 下的 nginx
- QUIC 和 HTTP/3 支持
- nginx 如何处理请求
- 服务器名称
- 使用 nginx 作为 HTTP 负载均衡器
- 配置 HTTPS 服务器
- UDP 会话
- 关于 nginScript
其他
How-To
开发
模块参考
- 核心功能
- HTTP
- ngx_http_core_module
- ngx_http_access_module
- ngx_http_addition_module
- ngx_http_auth_basic_module
- ngx_http_auth_jwt_module
- ngx_http_auth_request_module
- ngx_http_autoindex_module
- ngx_http_browser_module
- ngx_http_charset_module
- ngx_http_dav_module
- ngx_http_empty_gif_module
- ngx_http_f4f_module
- ngx_http_fastcgi_module
- ngx_http_flv_module
- ngx_http_geo_module
- ngx_http_geoip_module
- ngx_http_grpc_module
- ngx_http_gunzip_module
- ngx_http_gzip_module
- ngx_http_gzip_static_module
- ngx_http_headers_module
- ngx_http_hls_module
- ngx_http_image_filter_module
- ngx_http_index_module
- ngx_http_js_module
- ngx_http_keyval_module
- ngx_http_limit_conn_module
- ngx_http_limit_req_module
- ngx_http_log_module
- ngx_http_map_module
- ngx_http_memcached_module
- ngx_http_mirror_module
- ngx_http_mp4_module
- ngx_http_perl_module
- ngx_http_proxy_module
- ngx_http_random_index_module
- ngx_http_realip_module
- ngx_http_referer_module
- ngx_http_rewrite_module
- ngx_http_scgi_module
- ngx_http_secure_link_module
- ngx_http_session_log_module
- ngx_http_slice_module
- ngx_http_spdy_module(过时)
- ngx_http_split_clients_module
- ngx_http_ssi_module
- ngx_http_ssl_module
- ngx_http_status_module(过时)
- ngx_http_stub_status_module
- ngx_http_sub_module
- ngx_http_upstream_module
- ngx_http_upstream_conf_module
- ngx_http_upstream_hc_module
- ngx_http_userid_module
- ngx_http_uwsgi_module
- ngx_http_v2_module
- ngx_http_xslt_module
- Stream
- ngx_stream_core_module
- ngx_stream_access_module
- ngx_stream_geo_module
- ngx_stream_geoip_module
- ngx_stream_js_module
- ngx_stream_keyval_module
- ngx_stream_limit_conn_module
- ngx_stream_log_module
- ngx_stream_map_module
- ngx_stream_proxy_module
- ngx_stream_realip_module
- ngx_stream_return_module
- ngx_stream_split_clients_module
- ngx_stream_ssl_module
- ngx_stream_ssl_preread_module
- ngx_stream_upstream_module
- ngx_stream_upstream_hc_module
- ngx_stream_zone_sync_module
- 其他
- ngx_http_api_module
ngx_stream_keyval_module
ngx_stream_keyval_module
模块(1.13.7)可用于创建变量,变量的值从由 API 管理的键值对中获取。
此模块为商业订阅部分。
示例配置
http {
server {
...
location /api {
api write=on;
}
}
}
stream {
keyval_zone zone=one:32k 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
- | 说明 |
---|---|
语法 | keyval key $variable zone=name ; |
默认 | —— |
上下文 | stream |
创建一个新的 $variable
,其值在键值数据库中通过 key 查找。匹配规则由 keyval_zone 指令的 type 参数定义。数据库存储在 zone
参数指定的共享内存区域中。
keyval_zone
- | 说明 | ||
---|---|---|---|
语法 | keyval_zone `zone=name:size [state=file] [timeout=time] [type=string\ | ip\ | prefix] [sync]`; |
默认 | —— | ||
上下文 | stream |
设置维持键值数据库的共享内存区域的名称(name
)和大小(size
)。键值对通过 API 进行管理。
可选的 state
参数指定一个文件(file
),该文件以 JSON 格式保存键值数据库的当前状态,并在重新启动 nginx 时保持不变。
可选的 timeout
参数(1.15.0)设置将键值对从区域中删除的时间。
可选的 type
参数(1.17.1)激活一个额外的索引,该索引针对某种类型的键匹配进行了优化,匹配规则在计算键值 $variable
时定义。
索引存储在相同的共享存储区中,因此需要额外的存储。
type=string
默认配置,不启用索引;使用记录 key 和一个搜索 key 的完全匹配来执行变量查找
type=ip
搜索 key 是 IPv4 或 IPv6 地址或 CIDR 范围的文字表示;要匹配记录 key,搜索 key 必须属于记录 key 指定的子网或与 IP 地址完全匹配
type=prefix
使用记录 key 和搜索 key 的前缀匹配(1.17.5)执行变量查找;要与记录 key 匹配,记录 key 必须是搜索 key 的前缀
可选的 sync
参数(1.15.0)启用共享内存区域同步。同步要求设置超时(timeout
)参数。
如果启用了同步,则将仅在目标群集节点上执行键值对(无论是一个还是全部)的删除操作。经过
timeout
时间后,将删除其他群集节点上相同的键值对。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论