cgi_set_var

Директива 'cgi_set_var' задаёт переменные окружения для CGI-скриптов.

Синтаксисcgi_set_var name value;
По умолчаниюnone
Контекстserver, location
Аргументы2

Описание

Директива 'cgi_set_var' используется для определения и установки переменных окружения в контексте CGI-скриптов, выполняемых NGINX. Эта директива позволяет задавать переменные в формате пары имя-значение, где первый аргумент — имя переменной окружения, а второй аргумент — значение, которое ей присваивается. Это особенно полезно при настройке CGI-скриптов для изменения поведения в зависимости от настроек окружения, например для модификации поведения скрипта или передачи необходимых параметров конфигурации.

Когда директива 'cgi_set_var' вызывается внутри блока location или server block, указанные переменные передаются в CGI-скрипт как часть окружения выполнения. Это обеспечивает большую гибкость и контроль над тем, как скрипты получают входные данные и информацию о конфигурации. Например, можно задать переменные, определяющие уровни логирования, пути или другие параметры времени выполнения, которые могут потребоваться скриптам для корректной работы. Директива выполняется для каждого запроса, соответствующего определённому контексту, что обеспечивает адаптацию окружения для каждого CGI-запроса.

Важно отметить, что значение может содержать ссылки на другие переменные или быть жёстко заданной строкой. Если значение динамическое (т.е. ссылается на другие переменные NGINX), оно должно быть определено корректно, чтобы гарантировать его разрешение во время обработки запроса. Пользователям также следует убедиться, что имена переменных уникальны и не конфликтуют с существующими переменными окружения CGI, если только переопределение не происходит намеренно.

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

location /cgi-bin/ {
    cgi_set_var SCRIPT_ENV 'prod';
    cgi_set_var LOG_LEVEL 'info';
    cgi_pass /usr/bin/php-cgi;
}

Убедитесь, что имена переменных не конфликтуют с зарезервированными переменными CGI, так как это может привести к неожиданному поведению.

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

Переопределение существующих переменных окружения CGI может привести к непредвиденным последствиям для существующих скриптов.

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