openresty获取环境变量

最近开发中,使用openresty获取环境变量时遇到一些问题,在此记录一下。
官网描述,地址http://nginx.org/en/docs/ngx_core_module.html#env
默认情况下,nginx 会移除所有从父进程继承的环境变量,如果你想使用这些环境变量,需要使用该指令显示告知nginx不要移除你指定的环境变量。而且你也可以更改它们的值或创建新的环境变量。

操作方法为:
nginx.conf中插入配置

env ENV;

lua代码中调用

os.getenv("ENV")

注意:
此方法只能拿到openresty启动时候的环境变量,在运行过程中添加或修改的环境变量是不会变化的。
例如:
1.启动时~/.bashrc文件中已有

export ENV=test

2.启动openresty
3.修改~/.bashrc中变量为

export ENV=pre

并source ~/.bashrc
4.运行

os.getenv("ENV")

此时得到的结果为test。即使nginx -s reload也不行。必须退出nginx再启动才可以。
猜测是因为reload只会重新启动worker进程,不会重启master进程,而worker进程继承了master进程的环境变量,所以reload是没用的。

参考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值