label

定义可在 NGINX 配置和请求处理过程中访问的全局键值标签。

语法label key value;
默认值none
上下文http
参数2

说明

label 指令在 NGINX 中允许用户定义全局键值对,这些键值对可以通过变量在整个 NGINX 配置中访问。每个 label 都分配有唯一的键和值,其中键只能由字母、数字和下划线组成。重要的是,标签一旦创建便不能重新定义。该指令在 http 上下文中生效,意味着它在配置中定义的 server 或 location 块之间全局适用。分配给标签的值不应包含诸如 &= 的特殊字符,以保持 NGINX 内部变量计算的语法和功能正确。

配置后,定义的标签可以使用变量语法检索,例如 $label_key_name,其中 key_name 对应具体标签的标识符。这使得在配置的各种位置使用变得方便,例如日志、头部或动态响应处理。此外,另一个变量 $labels 将所有已定义的标签聚合为单个字符串,格式为 key1=value1&key2=value2,提供了一种更简单的方式在响应中包含所有相关信息。在底层,标签存储由哈希表管理,可以通过额外的指令对其配置进行微调,以在必要时优化性能。

配置示例

http {
    label environment production;
    label cluster_id my_cluster_id;
    label server_region us-east-1;
    label server_id my_server_id;

    server {
        listen 80;
        server_name example.com;
        location / {
            add_header Server-Id $label_server_id;
            add_header Cluster-Id $label_cluster_id;
            add_header All-Labels $labels;
            return 204;
        }
    }
}

标签的值不能包含像 '&' 和 '=' 这样的特殊字符。

相同的键不能被定义多次;这样会在配置解析时导致错误。

标签键必须以字母开头,并且只能包含字母、数字和下划线。

← 返回所有指令