json_var

`json_var` 指令在 NGINX 中创建一个新变量,将多个值聚合为 JSON 对象。

语法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 值进行转义以保持正确的格式。

← 返回所有指令