NGINX LUA 请求

我正在尝试运行一个 rproxy,在客户端连接到后端服务器之前应该进行请求。

这是我的默认值:

  server {
    listen 80;

    location /proxy {
#        set $api_result "";
        access_by_lua_file /etc/nginx/conf.d/header.lua;
        # 此服务仅打印您的请求头
        proxy_pass http://127.0.0.1:8080;
    }

    location / {
#        set $api_result "";
#        access_by_lua_file /etc/nginx/conf.d/header.lua;
        # 此服务仅打印您的请求头
        proxy_pass http://127.0.0.1:3000;
    }

}

Lua 代码:

local res = ngx.location.capture('/number/', { method = ngx.HTTP_GET, args = {} });

ngx.log(ngx.ERR, res.status);
if res.body == 1 then
    PROXY PASS?
else
  ngx.exit(403);
end

当我连接到 http://127.0.0.1:3000/number/ 时,会输出 0、1 或 2 基于这些数字,我想给出另一个代理_pass:用于 nginx。我该怎么做?

点赞
用户4984564
用户4984564
  1. 使用 ngx.exec 打开另一个位置
  2. 将该位置设置为某个代理位置(并将其设置为“内部”)
  3. 可选择使用 nginx 变量使其更具动态性。
2019-11-23 12:24:39