label

Определяет глобальные метки в виде пар ключ=значение для доступа в конфигурации NGINX и при обработке запросов.

Синтаксисlabel key value;
По умолчаниюnone
Контекстhttp
Аргументы2

Описание

Директива label в NGINX позволяет определить глобальные пары ключ-значение, к которым можно обращаться во всей конфигурации NGINX с помощью переменных. Каждой метке присваиваются уникальные ключ и значение, причём ключ может состоять только из букв, цифр и символа подчёркивания. Важно: метки нельзя переопределить после их создания. Эта директива действует в контексте 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;
        }
    }
}

Значения меток не могут содержать специальные символы, такие как '&' и '='.

Один и тот же ключ не может быть определён несколько раз; в противном случае при разборе конфигурации возникнет ошибка.

Ключи меток должны начинаться с буквы и могут содержать только буквы, цифры и символы подчёркивания.

← Ко всем директивам