如何在Openresty和Lua中使用环境变量

我正在尝试使用Lua在Openresty中使用环境变量:

worker_processes auto;
events { worker_connections 1024; }

env API_USERS;
env API_ROLESTECHS;

http{
  server {
    set_by_lua $api_users 'return os.getenv("API_USERS")';
    set_by_lua $api_rolestechs 'return os.getenv("API_ROLESTECHS")';
    listen 80;
    location / {
      root /usr/local/openresty/nginx/html;
    }
    rewrite ^/users/(.*)$ $api_users:8080/$1;
    rewrite ^/rolestechs/(.*)$ $api_rolestechs:1323/$1;
  }
}

我想说的是:

  • 如果URL不匹配以下正则表达式,就进入html文件夹并提供静态文件。
  • 否则,使用环境变量重写传入的URI。

以下配置可以正常工作,但URL(myurlusers和myurlrolestechs)是硬编码的:

worker_processes auto;
events { worker_connections 1024; }

http{
  server {
    listen 80;
    location / {
      root /usr/local/openresty/nginx/html;
    }

    rewrite ^/users/(.*)$ http://myurlusers:8080/$1;
    rewrite ^/rolestechs/(.*)$ http://myurlrolestechs:1323/$1;
  }
}

API_USERS和API_ROLESTECH是Openresty托管的主机的环境变量。

我错过了什么吗?

点赞