我的问题是如何将系统环境变量传递给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
有什么建议吗?
答案 0 :(得分:0)
这就是我使用fastcgi的方式,希望它对你或那里的任何人都有用。我的env变量在/ etc / environment下定义。请注意,在您定义它们之后,您可以使用CLASSPATH=$HADOOP_HOME/bin/hadoop classpath
使它们可用于您的会话。
让我们举一个你的变量之一。
这将在/ etc / environment下
fastcgi_param CLASSPATH $CLASSPATH;
include fastcgi_params;
一旦在系统中定义了这些,对于nginx,我在位置块中添加以下内容:
forkJoin