js_context_reuse

`js_context_reuse` 指令在 NGINX 中允许跨请求重用 JavaScript 执行上下文,从而提升性能并降低内存开销。

语法js_context_reuse on | off;
默认值off
上下文stream, stream server
参数1

说明

js_context_reuse 指令通过允许为多个请求重用 JavaScript 执行上下文,帮助在使用其 JavaScript 模块 (NJS) 时优化 NGINX 的性能。与为每个请求创建新的上下文不同,NGINX 可以维护一个上下文池。这减少了上下文创建的开销,最小化垃圾回收周期,并可能改善响应时间,尤其是在高负载场景中大量请求快速处理时。

该指令接受一个参数,其值可以是 'on' 或 'off'。当设置为 'on' 时,NGINX 会尝试重用现有上下文来处理传入请求。如果设置为 'off',则每个请求都会创建一个新的上下文,这在需要为了安全性或状态管理而将不同上下文隔离的场景中可能是必要的。需要考虑共享上下文的影响,例如如果不加以注意,可能会导致请求之间的状态泄漏。

在流和服务器的上下文中,该指令可以显著提升事件驱动应用的性能,例如那些依赖 WebSocket 通信或其他长连接的应用,通过降低延迟并提高处理请求的吞吐量。共享 JavaScript 执行上下文的能力意味着开发者可以专注于构建功能,而不必过度担心在处理多个并发连接时的资源分配效率。

配置示例

stream {
    js_context_reuse on;
    server {
        listen 3000;
        js_content my_js_module;
    }
}

确保你的 JavaScript 代码在使用上下文重用时,不依赖于可能在请求之间共享的请求特定状态。

监控性能,确保重用上下文不会因共享状态而引入意外行为。

← 返回所有指令