Openresty(十三)env指令

一     openresty引用系统的环境变量

官方env指令

查看openresty中相关指令帮助文档

restydoc -s env  --> 查看"帮助文档"

前提: yum install openresty-doc -y

①    应用场景

+++++++++++"使用场景"+++++++++++

1) 本想在'初始化init阶段'读取配置文件中设置的自定义变量

2) 但由于在初始化阶段,配置文件'还没有'加载

3) 解决策略:将该变量加入到系统环境变量中,来实现该变量的配置

核心: 经常会依据'不同的环境'使用'不同的配置'

②    env指令

Syntax: env variable[=value]; Context: main  -->nginx引入的,'不是'openresty'独有'的

1)  默认情况下,nginx 会'移除所有'从父进程继承的环境变量,想使用必须'白名单'机制

2)  如果你'想使用'这些环境变量,需要使用该指令'显示告知'nginx不要移除你指定的环境变量

env JAVA_HOME;

效果:nginx 会'保留'系统的 JAVA_HOME 环境变量

3)  也可以来'覆盖'父进程的环境变量

使用env JAVA_HOME="java";

备注:可以通过这种方式'更改'它们的值或'创建新'的环境变量

4)  典型应用,'不同的环境'进行'不同的配置'

config.lua local env = os.getenv("PROJECT_MODE") 

local config = {} -- 开发环境配置 

if env == "DEV" then

    -- 开发环境配置 

elseif env == "PROD" then 

    -- 生产环境配置

end 

return config

③    nginx.conf中引用

④    nginx.conf中使用

# 要求:必须安装'lua-nginx-module'模块
# 用在'其它'地方 -->该变量'作用域'的问题

server {
    set_by_lua $curr_server_name 'return os.getenv("NGINX_SERVERNAME")';
}
警告:自从v0.9.17发行版以来,"不鼓励"使用此指令;请改用'新'的set_by_lua_block指令

注意:这个指令一次只能写出一个'nginx变量'的值;

 ④    lua脚本中使用

⑤    测试结果

⑥    其它语言方式

nginx中通过lua和perl获取环境变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值