env

Директива 'env' позволяет задавать переменные окружения для рабочих процессов NGINX. — NGINX Core

env
main
Синтаксисenv NAME;
По умолчаниюnone
Контекстmain
МодульNGINX Core
Аргументы1

Описание

Директива 'env' используется в основном контексте конфигурационного файла NGINX для указания переменных окружения, которые должны быть переданы рабочим процессам. Это особенно полезно для задания значений конфигурации, к которым рабочие процессы могут обращаться во время выполнения, таких как API-ключи, строки подключения к базе данных или другие параметры, которые могут меняться в зависимости от среды развертывания. Синтаксис директивы 'env' прост: она принимает один аргумент, который задаёт имя переменной окружения. Можно указать несколько директив 'env' для задания нескольких переменных, поскольку каждая директива применяется независимо. В базовом C-коде директива 'env' обрабатывается во время фазы запуска NGINX. Указанные переменные добавляются в набор переменных окружения рабочих процессов NGINX, что позволяет обращаться к ним как к обычным переменным окружения. Директива 'env' особенно полезна в сценариях развертывания приложений в контейнеризированных средах (например, Docker) или системах оркестрации (например, Kubernetes), поскольку она дополняет практики управления конфигурацией при развертывании, позволяя легко изменять настройки без изменения кода приложения. Важно отметить, что значения, заданные директивой 'env', не сохранятся при перезагрузках процесса NGINX, если они явно не включены снова в конфигурационный файл. Кроме того, любые изменения переменных окружения в системе после запуска NGINX не вступят в силу, пока процесс NGINX не будет перезапущен. Поэтому понимание того, как эффективно использовать эту директиву, имеет решающее значение для поддержания конфигурации при развертываниях.

Пример конфига

env MY_DATABASE_USER;
env MY_API_KEY;

Обязательно перезапустите NGINX после добавления или изменения директив 'env', чтобы изменения вступили в силу.

На переменные окружения нужно ссылаться в правильном контексте, чтобы они были доступны для workers.