cgi_set_var

'cgi_set_var' 指令为 CGI 脚本设置环境变量。

语法cgi_set_var name value;
默认值none
上下文server, location
参数2

说明

'cgi_set_var' 指令用于在 NGINX 执行的 CGI 脚本上下文中定义并设置环境变量。该指令允许用户以名-值对的格式指定变量,其中第一个参数是环境变量的名称,第二个参数是要分配的值。这对于根据环境设置让 CGI 脚本表现不同尤其有用,例如修改脚本行为或提供必要的配置参数。

当在 location 或 server block 中调用 'cgi_set_var' 指令时,指定的变量会作为执行环境的一部分传递给 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 环境变量可能会对已有脚本产生意想不到的影响。

← 返回所有指令