var

`var` 指令允许在 NGINX 中使用预定义函数进行动态变量赋值。

语法var $variable_name function [-i] args... [if=condition];
默认值none
上下文http, server, location
参数2+

说明

var 指令在 NGINX 中用于根据预定义函数的结果动态创建并为变量赋值。该指令可在不同上下文中使用,包括 httpserverlocation,从而允许灵活的上下文相关变量作用域。该指令的语法如下:var $variable_name function [-i] args... [if=condition],其中 variable_name 是要定义的变量名,function 指定要应用的预定义操作,args 可以包含与该函数相关的附加参数。

var 指令的一个关键特性是它在每次引用变量时都会计算变量的值,而不是将其缓存。因此,请求或上下文的任何变化都可能导致变量反映更新后的值。可选的 -i 参数表示在处理字符串函数时应忽略大小写。生成的变量也可能取决于条件表达式的求值,从而允许更复杂的逻辑以动态确定变量值。

但需要注意的是,使用 var 指令定义的变量不能与 mapgeo 指令同时定义,以避免变量赋值时的潜在冲突。使用 set 指令可以覆盖先前定义的变量,从而在服务器配置中提供对变量定义的额外控制。

配置示例

server {
    listen 127.0.0.1:8080;
    server_name localhost;

    location / {
        var $new_var set $scheme://$host$request_uri;
    }
}

使用 var 定义的变量不能与 mapgeo 指令同时使用。

检查函数名和参数是否正确指定;否则,变量将被赋予空值。

if 参数的条件必须有效;否则,该指令可能无法按预期工作。

← 返回所有指令