mqtt-proxy

    这个插件支持 MQTT 3.1.* 及 两个协议。

    为了启用该插件,需要先在配置文件()中加载 stream_proxy 相关配置。以下配置代表监听 9100 TCP 端口:

    “./conf/config.yaml”

    现在你可以将请求发送到 9100 端口。

    如果你在 macOS 中使用 Docker,则 host.docker.internalhost 的正确属性。

    该插件暴露了一个变量 mqtt_client_id,你可以使用它来通过客户端 ID 进行负载均衡。比如:

    不同客户端 ID 的 MQTT 连接将通过一致性哈希算法被转发到不同的节点。如果客户端 ID 为空,将会通过客户端 IP 进行均衡。

    Stream 代理可以使用 TCP 连接并且支持 TLS。请参考 打开启用了 TLS 的 stream 代理。

    配置 ssl 提供 CA 证书和服务器证书,以及 SNI 列表。使用 ssl 保护 stream_routes 的步骤等同于 protect Routes

    通过以下示例可以创建一个配置了 mqtt-proxy 插件的 stream_route,需要提供 CA 证书、客户端证书和客户端密钥(对于不受主机信任的自签名证书,请使用 -k 选项):

    注意

    名称必须与提供的 CA 和服务器证书创建的 SSL 对象的一个​​或多个 SNI 匹配。

    当你需要禁用该插件时,可以通过以下命令删除相应的 JSON 配置,APISIX 将会自动重新加载相关配置,无需重启服务: