如何将系统环境变量传递到nginx.conf

如何将系统环境变量传递到nginx.conf,nginx,env,Nginx,Env,我的问题是如何将系统环境变量传递给nginx.conf 我在/etc/profile中定义了一个系统变量CLASSPATH: 导出类路径=$CLASSPATH:$HADOOP\u HOME/bin/HADOOP类路径--glob 我在nginx.conf中定义了两个变量: env TEST\u env=/usr/local/TEST env$CLASSPATH 并通过lua打印变量: 位置/lua{ default_type text/html; content_by_lua ' n

我的问题是如何将系统环境变量传递给nginx.conf

我在/etc/profile中定义了一个系统变量CLASSPATH:

导出类路径=$CLASSPATH:
$HADOOP\u HOME/bin/HADOOP类路径--glob

我在nginx.conf中定义了两个变量:

env TEST\u env=/usr/local/TEST

env$CLASSPATH

并通过lua打印变量:

位置/lua{

default_type text/html;

content_by_lua '

    ngx.say(os.getenv("TEST_ENV"));

    ngx.say(os.getenv("CLASSPATH"));

';
}

结果如下:

ngx.say(os.getenv(“TEST_ENV”);=>/usr/本地/测试

ngx.say(os.getenv(“CLASSPATH”);=>无

看起来env指令无法将系统值传递给nginx.conf


有什么建议吗?

这就是我使用fastcgi的方式,希望它对您或任何人都有用。我的环境变量在/etc/environment下定义。请注意,在定义它们之后,可以使用
source/etc/environment
将它们提供给会话

让我们以一个变量为例。 这将在/etc/environment下进行
CLASSPATH=$HADOOP\u HOME/bin/HADOOP CLASSPATH

一旦在系统中定义了这些,对于nginx,我将在位置块中添加以下内容:
fastcgi_参数类路径$CLASSPATH;

包括fastcgi_参数

这是我如何使用fastcgi实现的,希望它对您或任何人都有用。我的环境变量在/etc/environment下定义。请注意,在定义它们之后,可以使用
source/etc/environment
将它们提供给会话

让我们以一个变量为例。 这将在/etc/environment下进行
CLASSPATH=$HADOOP\u HOME/bin/HADOOP CLASSPATH

一旦在系统中定义了这些,对于nginx,我将在位置块中添加以下内容:
fastcgi_参数类路径$CLASSPATH;

包括fastcgi_参数

尝试
env类路径
不带
$
.env类路径;也打印nil。尝试
env类路径
不带
$
.env类路径;也打印零。