js_shared_dict_zone
定义一个共享内存区域,用于在 NGINX 的 stream 上下文中存储可被 NJS 脚本访问的数据。
NGINX njs dynamic modules
·
stream
语法js_shared_dict_zone name size;
默认值none
上下文stream
参数1+
说明
js_shared_dict_zone 指令允许您在 NGINX 的 stream 上下文中为 NJS 脚本专门创建共享内存区域。该指令指定一个或多个共享字典,这些字典可以由 JavaScript 通过 NJS module 访问。通过启用共享内存存储,脚本可以在不同的 worker processes 之间共享数据,这在缓存数据或其他共享状态管理操作中尤其有用。
语法至少需要一个参数,即内存区的名称,并且可以可选地包含大小定义。这样可以精细控制分配的内存量以及数据的结构,从而实现高效访问。该指令应放在 stream 上下文中,以确保其在处理 TCP 或 UDP 数据流时生效。使用共享字典的好处包括减少重复数据请求的开销,并允许 NJS 脚本在多个连接之间维持状态。
在配置 js_shared_dict_zone 时,需适当考虑存储需求和内存分配策略,因为过度使用内存可能导致性能下降。每个共享字典独立运行,这意味着您可以根据应用需求为不同用途定义多个区域。
配置示例
js_shared_dict_zone my_cache 10m;
⚠
确保指定的内存大小足以应对预期的数据负载,超出限制可能导致性能下降。
⚠
在跨工作进程共享数据时,记得正确配置访问权限。
⚠
避免使用可能在传输过程中造成显著开销的大对象。