加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

如何在nginx.conf中引用OS环境变量

发布时间:2020-12-13 21:04:52 所属栏目:Nginx 来源:网络整理
导读:在nginx.conf中. 通过设置$name值设置变量后, 我可以像$name一样引用它, 但是当我导出OS环境变量时 通过env name_from_env, 像https://nginx.org/en/docs/ngx_core_module.html#env说的, 我相信name_from_env是有效的 定义形式nginx的父进程. 但是,我的朋友

在nginx.conf中.

通过设置$name值设置变量后,
我可以像$name一样引用它,

但是当我导出OS环境变量时
通过env name_from_env,
像https://nginx.org/en/docs/ngx_core_module.html#env说的,
我相信name_from_env是有效的
定义形式nginx的父进程.

但是,我的朋友们,如何参考呢?
$name_from_env或${name_from_env}或
%name_from_env%不起我以前尝试过的功能.

最佳答案
nginx目前没有在配置中引用其环境变量的内置功能.然而,最简单的解决方案是来自ngx_http_perl_module的perl_set指令,这是nginx的额外模块.官方的nginx包装builds the Perl module dynamically所以这是一个确保你安装额外的nginx-module-perl包的例子(或配置nginx的自定义构建,如果你正在做的那样).

配置如下所示:

# Make environment variable available
env NAME_FROM_ENV;
# Load dynamic module (if built with Perl as dynamic module; omit if static)
load_module modules/ngx_http_perl_module.so;

http {
    server {
        location / {
            # Use Lua to get get and set the variable
            perl_set $name_from_env 'sub { return $ENV{"NAME_FROM_ENV"}; }';
            ...
        }
    }
}

有关如何使用Lua实现相同的操作,请参见https://docs.apitools.com/blog/2014/07/02/using-environment-variables-in-nginx-conf.html. Lua支持需要第三方模块,并不附带nginx的默认包.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读