nginx - 无法在Lua代码中使用环境变量

标签 nginx lua openresty

我有一些 Lua 代码,在我的 openresty nginx.conf 文件中使用。此 Lua 代码包含以下几行:

...
local secret = os.getenv("PATH")
assert(secret ~= nil, "Environment variable PATH not set")
...

出于测试原因,我尝试检查 PATH 变量是否已设置,但由于某种原因,断言语句未通过。我在控制台中看到:

Environment variable PATH not set

但是,当我运行这个

$ echo $PATH

我明白了,这个变量确实有一定的值(value)。那么,这有什么问题以及如何解决它?

最佳答案

您需要告诉 nginx 使环境变量可用。来自 docs for the env directive :“默认情况下,nginx 会删除从其父进程继承的所有环境变量(TZ 变量除外)。该指令允许保留一些继承的变量、更改它们的值或创建新的环境变量。”

因此,在您的情况下,您需要在 nginx.conf 中指定 env PATH;

关于nginx - 无法在Lua代码中使用环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41800071/

相关文章:

nginx - Openresty torch 模块加载问题

lua - Kong API网关 v0.11.0 upload_url

nginx - 如何使用golang lego let's encrypt client behind nginx?

Docker compose 和 nginx 网络主机名

ubuntu - 在 NGINX/Ubuntu 16.04 x64 (Digital Ocean) 上安装 SSL 证书

macos - osx - 获取当前桌面号的脚本

lua - 如何在Lua中使用按位运算符XOR?

python - 带有gunicorn和nginx的Django不会返回404或500

class - Lua:需要模块时如何返回模块本身?

nginx - 如何使用nginx进行用户级访问控制