首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于nginx conf外推的环境变量

用于nginx conf外推的环境变量
EN

Stack Overflow用户
提问于 2016-04-15 14:29:42
回答 1查看 1.5K关注 0票数 1

我使用confd根据我的环境呈现我的配置文件

代码语言:javascript
复制
$ ls -R /etc/confd
/etc/confd/:
conf.d  templates

/etc/confd/conf.d:
my_app.toml

/etc/confd/templates:
my_app.tmpl

我的配置:

代码语言:javascript
复制
$ cat /etc/confd/conf.d/my_app.toml
[template]
src = "my_app.tmpl"
dest = "/etc/nginx/sites-enabled/my_app.conf"
代码语言:javascript
复制
$ cat /etc/confd/templates/my_app.tmpl
# ...
    location @rewriteapp {
        rewrite ^(.*)$ /{{ getenv "/app/entry/point" }}/$1 last;
    }
# ...

confd运行良好

代码语言:javascript
复制
$ export APP_ENTRY_POINT="app_dev.php"
$ confd -onetime -backend env
2016-04-15T13:54:29Z 1c682a040707 /usr/local/bin/confd[44]: INFO Backend set to env
2016-04-15T13:54:29Z 1c682a040707 /usr/local/bin/confd[44]: INFO Starting confd
2016-04-15T13:54:29Z 1c682a040707 /usr/local/bin/confd[44]: INFO Backend nodes set to
2016-04-15T13:54:29Z 1c682a040707 /usr/local/bin/confd[44]: INFO Target config /etc/nginx/sites-enabled/my_app.conf out of sync
2016-04-15T13:54:29Z 1c682a040707 /usr/local/bin/confd[44]: INFO Target config /etc/nginx/sites-enabled/my_app.conf has been updated

但是生成的文件无法解析变量。

代码语言:javascript
复制
$ cat /etc/nginx/sites-enabled/my_app.conf
# ...
    location @rewriteapp {
        rewrite ^(.*)$ //$1 last;
#                       ^- I should have app_dev.php between the `//`
    }
# ...
  • 我在这里做错什么了吗?
  • 我如何调试这个?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-15 15:00:08

有记载的不同,confd (0.11.0) getenv函数似乎并不期望环境变量作为路径/app/entry/point

环境变量确实保持原样:APP_ENTRY_POINT

因此,模板应该简单地说:

代码语言:javascript
复制
$ cat /etc/confd/templates/my_app.tmpl
# ...
    location @rewriteapp {
        rewrite ^(.*)$ /{{ getenv "APP_ENTRY_POINT" }}/$1 last;
    }
# ...

-debug-verbose选项来检查正在发生的事情

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36649927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档