跳转至

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 仓库 中找到此模块的其他配置提示和文档。