doc: added chinese doc for stream proxy.

This commit is contained in:
coolsoul 2019-09-26 15:08:21 +08:00 committed by WenMing
parent 791fe6982e
commit 7adcea69fb
4 changed files with 75 additions and 3 deletions

View File

@ -58,8 +58,8 @@ APISIX 通过插件机制,提供动态负载平衡、身份验证、限流限
- **IdP 支持**: 支持外部的身份认证服务,比如 Auth0okta 等,用户可以借此来对接 Oauth2.0 等认证方式。 - **IdP 支持**: 支持外部的身份认证服务,比如 Auth0okta 等,用户可以借此来对接 Oauth2.0 等认证方式。
- **[单机模式](doc/stand-alone-cn.md)**: 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。 - **[单机模式](doc/stand-alone-cn.md)**: 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
- **全局规则**:允许对所有请求执行插件,比如黑白名单、限流限速等。 - **全局规则**:允许对所有请求执行插件,比如黑白名单、限流限速等。
- **[TCP/UDP 代理](doc/stream-proxy.md)**: 动态 TCP/UDP 代理。 - **[TCP/UDP 代理](doc/stream-proxy-cn.md)**: 动态 TCP/UDP 代理。
- **[动态 MQTT 代理](doc/plugins/mqtt-proxy.md)**: 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。 - **[动态 MQTT 代理](doc/plugins/mqtt-proxy-cn.md)**: 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
- **ACL**: TODO。 - **ACL**: TODO。
- **Bot detection**: TODO。 - **Bot detection**: TODO。

63
doc/stream-proxy-cn.md Normal file
View File

@ -0,0 +1,63 @@
[English](stream-proxy.md)
# Stream 代理
众多的闻名的应用和服务,像 LDAP、 MYSQL 和 RTMP ,选择 TCP 作为通信协议。 但是像 DNS、 syslog 和 RADIUS 这类非事务性的应用,他们选择了
UDP协议。
APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明.
## 如何开启 Stream 代理?
`conf/config.yaml` 配置文件设置 `stream_proxy` 选项, 指定一组需要进行动态代理的IP地址。默认情况不开启stream代理。
```
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
```
## 如何设置 route ?
简例如下:
```shell
curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -X PUT -d '
{
"remote_addr": "127.0.0.1",
"upstream": {
"nodes": {
"127.0.0.1:1995": 1
},
"type": "roundrobin"
}
}'
```
例子中 APISIX 对客户端IP为 127.0.0.1`的请求代理转发到上游主机 `127.0.0.1:1995`
更多用例,请参照 [test case](../t/stream-node/sanity.t).
## 更多限制选项
我们可以添加更多的选项来匹配 route ,例如
```shell
curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -X PUT -d '
{
"server_addr": "127.0.0.1",
"server_port": 2000,
"upstream": {
"nodes": {
"127.0.0.1:1995": 1
},
"type": "roundrobin"
}
}'
```
例子中 APISIX 把上游地址 `127.0.0.1:1995` 代理成地址为 `127.0.0.1`, 端口为 `2000`

View File

@ -1,3 +1,5 @@
[中文](stream-proxy-cn.md)
# Stream Proxy # 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. 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.

View File

@ -2,9 +2,16 @@
set -ex set -ex
OR_EXEC=`which openresty` OR_EXEC=`which openresty 2>&1`
echo $OR_EXEC echo $OR_EXEC
# check the openresty exist
CHECK_OR_EXIST=`echo $OR_EXEC | grep ": no openresty" | wc -l`
if [ $CHECK_OR_EXIST -eq 1 ];then
echo "can not find the openresty, install failed"
exit 1;
fi
LUA_JIT_DIR=`TMP='./v_tmp' && $OR_EXEC -V &>$${TMP} && cat $${TMP} | grep prefix | grep -Eo 'prefix=(.*?)/nginx' | grep -Eo '/.*/' && rm $${TMP}` LUA_JIT_DIR=`TMP='./v_tmp' && $OR_EXEC -V &>$${TMP} && cat $${TMP} | grep prefix | grep -Eo 'prefix=(.*?)/nginx' | grep -Eo '/.*/' && rm $${TMP}`
LUA_JIT_DIR="${LUA_JIT_DIR}luajit" LUA_JIT_DIR="${LUA_JIT_DIR}luajit"
echo $LUA_JIT_DIR echo $LUA_JIT_DIR