vars
设置一个或多个变量为特定值,以便在后续请求处理链中使用。
访问变量的主要方式是使用占位符,格式为 {vars.variable_name}
,或使用 vars
和 vars_regexp
请求匹配器。
你可以在 templates
指令中通过 placeholder
函数使用变量,例如:{{placeholder "http.vars.variable_name"}}
特殊情况下,可以覆盖名为 http.auth.user.id
的变量(存储在 replacer 中),以更新访问日志中的 user_id
字段。
语法
vars [<matcher>] [<name> <value>] {
<name> <value>
...
}
-
<name> 要设置的变量名。
-
<value> 变量的值。
如果可能,值会被类型转换;
true
和false
会被转换为布尔类型,数字值会被转换为整数或浮点数。若要避免此转换并保持为字符串,可以用引号包裹。
示例
设置单个变量,值根据请求路径有条件变化,然后用该值响应:
example.com {
vars /foo* isFoo "yep"
vars isFoo "nope"
respond {vars.isFoo}
}
设置多个变量,每个变量会被转换为合适的标量类型:
vars {
# 布尔值
abc true
# 整数
def 1
# 浮点数
ghi 2.3
# 字符串
jkl "example"
}