如何在代理服务器与上游服务器之间使用 Openresty 获取 socket 端口?

我使用 OpenResty® 代理我的后端服务器。 流程是客户端-> 代理服务器-> 后端服务器

问题是代理服务器和后端服务器之间代码的评论:

 {
    上游测试流{
        服务器 xxxxxx:1234;
    }

    服务器{
        监听 1234;
        proxy_pass teststream;

        content_by_lua_block {
            #如何在代理服务器和后端服务器之间获取代理服务器的套接字端口
        }
    }}

客户端向代理服务器发送消息,然后代理服务器将消息转发到后端服务器。代理服务器将新建一个套接字连接到后端服务器,那么如何在 content_by_lua_block 中获取代理服务器与后端服务器之间的套接字端口呢?

点赞
用户2060502
用户2060502

下面有 https://github.com/openresty/lua-upstream-nginx-module

get_servers

语法: servers = upstream.get_servers(upstream_name)

获取指定上游组中所有服务器的配置。需要注意的是,当一个服务器名对应多个地址时,一个服务器可能会占据多个地址。

返回一个类似数组的 Lua 表。每个表条目都是一个类似哈希表的 Lua 表,包含以下键:

  • addr

套接字地址,可以是 Lua 字符串或类似数组的 Lua 表中的 Lua 字符串。

...

顺便说一句,proxy_passcontent_by_lua_block 都是内容阶段指令,只有一个会起效。请参考这篇帖子:https://groups.google.com/forum/#!topic/openresty-en/DRocQpM4mVY

2017-04-06 08:03:58