json_var
`json_var` 指令在 NGINX 中创建一个新变量,将多个值聚合为 JSON 对象。
NGINX JSON variables module
·
http
语法json_var $variable { ... }
默认值none
上下文http
参数block (1)
说明
json_var 指令允许管理员定义一个键值对块,该块会被转换为 JSON 格式。每个键值对在 json_var 块中定义,键为字符串标识符,值可以是任何有效的 NGINX 变量。这对于以一致的格式向客户端返回结构化数据(例如 API 响应)特别有用。该指令的上下文限定在 http 块内,适用于服务器范围的设置,但不适用于单个 server 或 location 块。
当声明 json_var 指令时,它会初始化一个内部结构来保存其块中指定的字段。对于每个指定的字段,NGINX 会将其编译为一个复杂值,允许动态计算值(例如基于请求变量)。配置完成后,生成的变量可以直接在 NGINX 响应中使用,通常在 return 指令或类似上下文中将 JSON 格式的字符串输出到客户端。该指令会根据需要处理变量的转义,确保生成的 JSON 有效。
配置示例
http {
json_var $output {
timestamp $time_local;
remoteAddr $remote_addr;
xForwardedFor $http_x_forwarded_for;
userAgent $http_user_agent;
params $args;
}
server {
location /get_json/ {
return 200 $output;
}
}
}⚠
确保 json_var 块为每个键值对包含正确数量的参数,配置不当可能导致初始化错误。
⚠
注意 NGINX 的变量名;确保它们在 NGINX 配置的作用域内被正确定义并且有效。
⚠
记得在必要时对 JSON 值进行转义以保持正确的格式。