跳到主要内容
版本:3.2.12.0

转发四层流量

API7 网关同时支持处理传输层(四层)流量,通常是 TCP 或者 UDP 流量。可用于纯四层流量转发,或同时转发四层及七层流量。

这篇操作指南以和 MySQL 服务器建立连接为例,描述了如何配置四层路由(Stream Route)来进行四层流量的转发。

前提条件

  1. 安装 API7 企业版
  2. 获取一个拥有超级管理员或者API 提供者角色的用户账号。
  3. 将默认网关组重命名为测试网关组并配置网络。该网关组将作为测试环境的 API 网关。
  4. 在网关组中至少新增一个网关实例
  5. 准备好 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

新增服务和四层路由

  1. 从左侧导航栏选择服务中心,然后点击 新增服务
  2. 选择手动新增
  3. 新增服务对话框中, 执行以下操作:
    • 名称填写 MySQL
    • 服务类型选择Stream(四层代理)
    • 上游 Scheme使用默认值 TCP
  4. 点击新增
  5. 在服务详情页面中,点击新增四层路由
  6. 新增四层路由对话框中,执行以下操作:
    • 路由名称填写 stream-route-mysql
    • 服务器地址填写 127.0.0.111
    • 服务器端口填写 2000
  7. 点击 新增

使用上游节点发布服务

  1. 从左侧导航栏中选择服务中心,然后选择 MySQL 服务。
  2. 点击立即发布
  3. 选择 测试网关组 然后点击下一步
  4. 服务发布对话框中,执行以下操作:
    • 新版本填写 1.0.0
    • 如何找到上游 保持默认值 使用上游节点.
    • 点击新增节点。在对话框中,执行以下操作:
      • 主机端口填写你的 MySQL 服务器 IP 地址及3306
      • 权重使用默认值 100
    • 点击新增
  5. 确认服务信息后,点击发布

验证 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.19100,才能成功建立连接。