转发四层流量
API7 网关同时支持处理传输层(四层)流量,通常是 TCP 或者 UDP 流量。可用于纯四层流量转发,或同时转发四层及七层流量。
这篇操作指南以和 MySQL 服务器建立连接为例,描述了如何配置四层路由(Stream Route)来进行四层流量的转发。
前提条件
- 安装 API7 企业版。
- 获取一个拥有超级管理员或者API 提供者角色的用户账号。
- 将默认网关组重命名为
测试网关组
并配置网络。该网关组将作为测试环境的 API 网关。 - 在网关组中至少新增一个网关实例。
- 准备好 MySQL 服务器。
启动 MySQL 服务器
启动一个 MySQL 实例作为上游服务的样例,并配置好根密码。例如:
docker run -d \
--name mysql \
--network=apisix-quickstart-net \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
mysql \
mysqld --default-authentication-plugin=mysql_native_password
新增服务和四层路由
- 从左侧导航栏选择服务中心,然后点击 新增服务。
- 选择手动新增。
- 在新增服务对话框中, 执行以下操作:
- 名称填写
MySQL
。 - 服务类型选择
Stream(四层代理)
。 - 上游 Scheme使用默认值
TCP
。
- 名称填写
- 点击新增。
- 在服务详情页面中,点击新增四层路由。
- 在新增四层路由对话框中,执行以下操作:
- 路由名称填写
stream-route-mysql
。 - 服务器地址填写
127.0.0.111
。 - 服务器端口填写
2000
。
- 路由名称填写
- 点击 新增。
使用上游节点发布服务
- 从左侧导航栏中选择服务中心,然后选择
MySQL
服务。 - 点击立即发布。
- 选择
测试网关组
然后点击下一步。 - 在服务发布对话框中,执行以下操作:
- 新版本填写
1.0.0
。 - 如何找到上游 保持默认值
使用上游节点
. - 点击新增节点。在对话框中,执行以下操作:
- 主机和端口填写你的 MySQL 服务器 IP 地址及
3306
。 - 权重使用默认值
100
。
- 主机和端口填写你的 MySQL 服务器 IP 地址及
- 点击新增。
- 新版本填写
- 确认服务信息后,点击发布。
验证 MySQL 连接
连接 MySQL 服务器并使用 root 用户登录,根据提示输入密码:
mysql --host=127.0.0.1 --port=9100 -u root -p
你可以看到,请求被拒绝了:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
只有把四层路由中的匹配规则,改为服务器地址
和 服务器端口
分别为 127.0.0.1
和 9100
,才能成功建立连接。