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

时间:2016-07-25 11:01:06

标签: nginx env

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

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

导出CLASSPATH = $ CLASSPATH:$HADOOP_HOME/bin/hadoop classpath --glob

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

env TEST_ENV = / usr / local / test;

env $ CLASSPATH;

并按lua打印变量:

location / 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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这就是我使用fastcgi的方式,希望它对你或那里的任何人都有用。我的env变量在/ etc / environment下定义。请注意,在您定义它们之后,您可以使用CLASSPATH=$HADOOP_HOME/bin/hadoop classpath使它们可用于您的会话。

让我们举一个你的变量之一。 这将在/ etc / environment下 fastcgi_param CLASSPATH $CLASSPATH; include fastcgi_params;

一旦在系统中定义了这些,对于nginx,我在位置块中添加以下内容: forkJoin