keyval: Nginx 模块用于键值存储
安装
您可以在任何基于 RHEL 的发行版中安装此模块,包括但不限于:
- RedHat Enterprise Linux 7、8、9 和 10
- CentOS 7、8、9
- AlmaLinux 8、9
- Rocky Linux 8、9
- Amazon Linux 2 和 Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-keyval
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-keyval
通过在 /etc/nginx/nginx.conf 顶部添加以下内容来启用该模块:
load_module modules/ngx_http_keyval_module.so;
本文档描述了 nginx-module-keyval v0.4.0,于 2026 年 3 月 30 日发布。
概述
nginx-keyval 是一个用于 nginx 的键值存储动态模块。它的开发灵感来源于 nginx 的商业版本 ngx_http_keyval_module。
许可证:MIT 许可证
主要特性
- 双后端:支持两种类型的存储后端:共享内存 (SHM) 和 Redis
- HTTP / Stream 支持:在 HTTP 和 Stream 上下文中均可工作
- TTL 支持:可配置的键值对过期时间
- 复合键:通过组合多个变量和字面字符串构建键(例如,
$remote_addr:$http_user_agent) - 变量扩展:使用 nginx 变量作为键,在运行时动态扩展
快速开始
请参阅 INSTALL.md 以获取安装说明。
最小配置示例
http {
keyval_zone zone=one:32k;
keyval $arg_text $text zone=one;
server {
listen 80;
location / {
return 200 $text;
}
}
}
此配置使用查询参数 text 作为键,从共享内存区域 one 中检索值,并将其存储在变量 $text 中。
指令
| 指令 | 描述 | 上下文 |
|---|---|---|
keyval |
从键值对定义变量 | http, stream |
keyval_zone |
定义共享内存区域 | http, stream |
keyval_zone_redis |
定义 Redis 区域 | http, stream |
请参阅 DIRECTIVES.md 以获取详细的指令参考。
相关文档
配置与操作: - DIRECTIVES.md:指令参考 - EXAMPLES.md:配置示例 - INSTALL.md:安装说明 - SECURITY.md:安全指南 - TROUBLESHOOTING.md:故障排除指南
参考: - COMMERCIAL_COMPATIBILITY.md:商业版本兼容性
GitHub
您可以在 nginx-module-keyval 的 GitHub 仓库 中找到此模块的其他配置提示和文档。