Перейти к содержанию

label: Глобальные ключ-значение метки для динамической конфигурации

Установка Debian/Ubuntu

Эти документы применимы к пакету APT nginx-module-label, предоставляемому репозиторием GetPageSpeed Extras.

  1. Настройте репозиторий APT, как описано в настройке репозитория APT.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-label
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия            | Компонент   | Архитектуры     |
|-------------|-------------------|-------------|-----------------|
| debian      | bookworm          | main        | amd64, arm64    |
| debian      | bookworm-mainline | main        | amd64, arm64    |
| debian      | trixie            | main        | amd64, arm64    |
| debian      | trixie-mainline   | main        | amd64, arm64    |
| ubuntu      | focal             | main        | amd64, arm64    |
| ubuntu      | focal-mainline    | main        | amd64, arm64    |
| ubuntu      | jammy             | main        | amd64, arm64    |
| ubuntu      | jammy-mainline    | main        | amd64, arm64    |
| ubuntu      | noble             | main        | amd64, arm64    |
| ubuntu      | noble-mainline    | main        | amd64, arm64    |

Название

ngx_http_label_module позволяет определять глобальные ключ-значение метки в конфигурации Nginx. Эти метки могут использоваться в переменных для обработки запросов, ведения журналов или динамической конфигурации.

Содержание

Статус

В данный момент этот модуль Nginx считается экспериментальным. Проблемы и PR приветствуются, если вы столкнулись с какими-либо проблемами.

Синопсис

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

    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;
        }
    }
}

Директивы

label

Синтаксис: label key value;

По умолчанию: нет

Контекст: http

Определяет глобальную ключ-значение метку, к которой можно обратиться через переменные. Ключ метки может содержать только буквы, цифры и _. Один и тот же ключ не может быть определен повторно. Значение метки не допускает использования & и =.

Пример:

label environment production;
label region us-east-1;

labels_hash_max_size

Синтаксис: labels_hash_max_size number;

По умолчанию: labels_hash_max_size 512;

Контекст: http

Устанавливает максимальный размер хеш-таблицы для хранения меток.

labels_hash_bucket_size

Синтаксис: labels_hash_bucket_size number;

По умолчанию: labels_hash_bucket_size 32|64|128;

Контекст: http

Устанавливает размер ведра хеш-таблицы для меток. Значение по умолчанию зависит от размера кэш-линии процессора. Подробности настройки хеш-таблиц приведены в отдельном документе.

Переменные

$label_name

Получает значение конкретной метки по ее ключу.

$labels

Возвращает все определенные метки в формате key1=value1&key2=value2, как $args. Все ключи меток будут напечатаны строчными буквами.