【问题标题】:How to pass the system environment variable to nginx.conf如何将系统环境变量传递给 nginx.conf
【发布时间】:2016-07-25 11:01:06
【问题描述】:

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

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

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

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

env TEST_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/local/test

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

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

有什么建议吗?

【问题讨论】:

  • 试试不带$env CLASSPATH;
  • 环境类路径;也打印 nil。

标签: nginx env


【解决方案1】:

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

让我们以您的一个变量为例。 这将在 /etc/environment 下 CLASSPATH=$HADOOP_HOME/bin/hadoop classpath

一旦在系统中定义了这些,对于 nginx,我将在 location 块中添加以下内容: fastcgi_param CLASSPATH $CLASSPATH; include fastcgi_params;

【讨论】:

    猜你喜欢
    • 2019-06-05
    • 1970-01-01
    • 2023-01-20
    • 2021-05-29
    • 2013-12-29
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多