label: Глобальные ключ-значение метки для динамической конфигурации
Установка
Вы можете установить этот модуль в любом дистрибутиве на базе RHEL, включая, но не ограничиваясь:
- RedHat Enterprise Linux 7, 8, 9 и 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-label
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-label
Включите модуль, добавив следующее в начало файла /etc/nginx/nginx.conf:
load_module modules/ngx_http_label_module.so;
Этот документ описывает nginx-module-label v0.1.0, выпущенный 6 января 2026 года.
Синопсис
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. Все ключи меток будут напечатаны строчными буквами.
GitHub
Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-label.