【问题标题】:How to get the environment variable name in nginx config如何在 nginx 配置中获取环境变量名
【发布时间】:2020-10-01 19:36:01
【问题描述】:

我让 nginx 服务器作为 docker 运行,基础镜像为 openresty/openresty:1.15.8.3-buster。

在 docker 文件中,我有一个环境变量,如下所示 ENV UPLOAD_FOLDER /sharedvolume 如何在 nginx.config 中访问这个变量?

我尝试使用 set_by_lua 如下 set_by_lua $store_path 'return os.getenv("UPLOAD_FOLDER")'; 但是 store_path 的值是 nil

【问题讨论】:

    标签: nginx lua openresty


    【解决方案1】:

    来自the documentation

    系统环境变量支持

    如果您想通过标准 Lua API os.getenv 在 Lua 中访问系统环境变量,例如 foo,那么您还应该通过 env directive 在您的 nginx.conf 文件中列出此环境变量名称.例如,

    
     env foo;
    

    所以添加env UPLOAD_FOLDER; 就可以了。

    【讨论】:

    • 感谢约瑟夫的意见。我厌倦了这个,但它没有用。仍然在我的 lua 脚本中,我得到它为零。我有一个 http 指令,其中包括一个服务器指令。首先,我尝试包含 env UPLOAD_FOLDER;在服务器指令块中,但它给了我错误,说它不允许在那里所以在 http 和 lua 中给它我尝试将它称为 os.getenv(UPLOAD_FOLDER)|os.getenv("UPLOAD_FOLDER") 但没有工作
    • "在服务器指令块中" 你的问题。文档说“上下文:main”。
    • 我的配置就像 http 是具有一个服务器和多个位置的主要指令 http{server{ location1 location2 ...}} 。我添加了 env UPLOAD_FOLDER;第二次访问 http,它没有抱怨,但是当我运行服务器时,它给我这个环境值的 nil 值
    猜你喜欢
    • 2016-08-06
    • 1970-01-01
    • 2017-06-23
    • 2019-02-18
    • 2011-06-11
    • 2018-11-18
    • 2015-02-11
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多