MQTT 和 MQTTS 应用

创建 MQTT 或 MQTTS 应用,并配置监听端口、上游、客户端标识规则和 TLS。

MQTT 和 MQTTS 应用用于在 OpenResty Edge 上代理 MQTT 客户端与 Broker 之间的 长连接。MQTT 使用明文连接;MQTTS 使用 TLS 保护客户端到网关的连接。

此功能在 OpenResty Edge 26.12.1-1 中首次引入。

准备网关分区

先打开 网关集群 > 网关分区,为目标分区添加 MQTT 或 MQTTS 监听端口。 应用只能选择已经在其分区中配置的对应协议端口。

创建应用

  1. 打开 应用,点击 新建应用。
  2. 选择 MQTT 或 MQTTS,填写应用名称和分区。
  3. 选择监听端口并保存。
  4. 添加 TCP 上游,填写 Broker 地址和端口。
  5. 为 MQTTS 应用在 SSL 页面配置证书和 TLS 选项。
  6. 在 发布 页面检查变更并发布应用。

新建流式应用表单提供 MQTT 和 MQTTS 类型

MQTT 应用没有 SSL 配置页。MQTTS 应用除了常规流式应用页面外,还提供 SSL 配置;客户端必须使用 TLS 连接 MQTTS 监听端口。

按 MQTT Client ID 匹配规则

在应用的页面规则中,可以使用 MQTT Client ID 条件匹配客户端在 MQTT CONNECT 报文中提交的 Client ID。可用该条件为不同设备或租户设置限流、 访问控制和日志动作。MQTTS 应用还可以使用 SNI Server Name 条件。

保存规则后必须发布应用才会生效。Client ID 由客户端提供,不能单独作为可信的 身份凭据;需要认证时,应同时使用 Broker 认证、TLS 客户端证书或其他访问控制。

运维注意事项

  • MQTT 会话通常持续较长时间。需要定期观察长连接状态时,可以启用 分段访问日志。
  • MQTT 协议没有 HTTP 响应体,因此 MQTT/MQTTS 页面规则不提供输出响应体动作。
  • 创建用户组时,MQTT 和 MQTTS 使用独立的权限模块;应只授予用户需要管理的 应用类型和操作权限。