1 Star 0 Fork 166

神童 / Apache APISIX

forked from iresty / Apache APISIX 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
stream-proxy.md 2.65 KB
一键复制 编辑 原始数据 按行查看 历史

Chinese

Stream Proxy

TCP is the protocol for many popular applications and services, such as LDAP, MySQL, and RTMP. UDP (User Datagram Protocol) is the protocol for many popular non-transactional applications, such as DNS, syslog, and RADIUS.

APISIX can dynamic load balancing TCP/UDP proxy. In Nginx world, we call TCP/UDP proxy to stream proxy, we followed this statement.

How to enable Stream proxy?

Setting the stream_proxy option in conf/config.yaml, specify a list of addresses that require dynamic proxy. By default, no any stream proxy is enabled.

apisix:
  stream_proxy:                 # TCP/UDP proxy
    tcp:                        # TCP proxy address list
      - 9100
      - 127.0.0.1:9101
    udp:                        # UDP proxy address list
      - 9200
      - 127.0.0.1:9211

How to set route?

Here is a mini example:

curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "remote_addr": "127.0.0.1",
    "upstream": {
        "nodes": {
            "127.0.0.1:1995": 1
        },
        "type": "roundrobin"
    }
}'

It means APISIX will proxy the request to 127.0.0.1:1995 which the client remote address is 127.0.0.1.

For more use cases, please take a look at test case.

More Limit Options

And we can add more limit options to match a route, here is an example:

curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "server_addr": "127.0.0.1",
    "server_port": 2000,
    "upstream": {
        "nodes": {
            "127.0.0.1:1995": 1
        },
        "type": "roundrobin"
    }
}'

It means APISIX will proxy the request to 127.0.0.1:1995 which the server remote address is 127.0.0.1 and the server port is equal 2000.

Lua
1
https://gitee.com/macowin/apisix.git
git@gitee.com:macowin/apisix.git
macowin
apisix
Apache APISIX
master

搜索帮助