2017-04-05 50 views
1

我使用OpenResty®來代理我的後端服務器。 的方法是客戶端 - >代理服務器 - >後端服務器Openresty如何在代理服務器和上游服務器之間獲得代理服務器的套接字端口?

問題是代碼的註釋:

stream { 
    upstream teststream{ 
     server xxxxxx:1234; 
    } 

    server { 
     listen 1234; 
     proxy_pass teststream; 

     content_by_lua_block { 
      #how to get the proxy server socket port between proxy server and backend server 
     } 
    }} 

客戶端將消息發送到代理服務器,然後代理服務器將該消息轉發給後端服務器。代理服務器將新建一個用於連接後端服務器的套接字,那麼如何獲取content_by_lua_block中代理服務器和後端服務器之間的代理服務器套接字端口?

回答

1

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

get_servers

語法:服務器= upstream.get_servers(upstream_name)

指定的上游 組中的所有服務器獲取配置。當其服務器 名稱可以解析爲多個地址時,請一臺服務器可能會佔用多個地址。

返回值是一個類似數組的Lua表。每個表項是 哈希般的Lua表,它採用以下鍵:

  • 地址

套接字地址(ES)。可以是Lua字符串,也可以是Lua字符串的Lua 表。

...

BTW,既proxy_pass和content_by_lua_block是內容階段指令。 只有一個人會工作。請看看這篇文章https://groups.google.com/forum/#!topic/openresty-en/DRocQpM4mVY