js_set
`js_set` 指令允许在 stream context 中将 JavaScript 值赋给 NGINX 变量。
NGINX njs dynamic modules
·
streamstream server
语法js_set $variable_name 'JavaScript expression';
默认值none
上下文stream, stream server
参数2-3
说明
js_set 指令是 NGINX JavaScript 模块的一部分,旨在将 JavaScript 表达式绑定到 NGINX 变量。它在 stream contexts 中尤其有用,当需要根据流量状况或客户端请求实现动态行为时。
该指令接受两到三个参数:要将 JavaScript 表达式赋给的变量名、要执行的 JavaScript 代码,以及一个可选的第三个参数,用于指定是否将该变量视为字符串或数字。这样的灵活性允许在配置文件中直接进行复杂的变量操作,使开发者能够利用 JavaScript 的能力来实现复杂配置,而无需求助于外部脚本或额外的处理层。
在实际使用中,js_set 可用于基于客户端数据计算值、根据请求参数执行条件逻辑或生成动态响应,从而创建更具交互性和响应性的服务器行为,以满足单个用户请求的需求。
配置示例
js_set $custom_var 'function() { return "Hello, World!"; }();';⚠
确保 JavaScript 语法正确,因为表达式中的错误会导致配置失败。
⚠
使用可选的第三个参数时,请记得指定正确的类型(string 或 number),以避免出现意外行为。
⚠
JavaScript 代码在请求上下文中执行;避免使用阻塞或性能开销大的操作。