一、Http转发
Http转发可以在dashboard进行路由配置,例如:
1.设置上游(可以理解为指定服务),首先将之前顺带部署example-web-1、example-web-2测试服务添加进来

2.设置服务(可以理解为给服务加上插件,扩展服务能力)

3.设置路由(相当于nginx转发),注意的是绑定服务可以不绑定,直接选择上游服务。

4.测试转发能力:连续请求可以看到具有负载均衡的能力,在生产中可以通过ApiSix转发到gateway服务,利用插件可以实现限流、监控、鉴权等操作!


二、MQTT转发
apisix目前不支持在dashboard配置mqtt转发,而是通过内置stream_routes实现
1.首先打开~/apisix/apisix-docker/example/apisix_conf,编辑config.yaml,在apisix加上:
proxy_mode: http&stream #开启stream代理模式
stream_proxy:
tcp:
- 9083 #自定义转发端口

2.返回上一级,编辑docker compose文件,配置映射9083端口,保存重启docker compose

3.通过接口新增mqtt转发配置,注意请求的是9180管理端口,而不是9080业务端口!
新增:
curl -X POST http://127.0.0.1:9180/apisix/admin/stream_routes/1 \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" \ #自定义key,后面删除该配置也要带上
-H "Content-Type: application/json" \
-d '{
"plugins": {
"mqtt-proxy": {
"protocol_name": "MQTT",
"protocol_level": 4
}
},
"upstream": {
"type": "roundrobin",
"scheme": "tcp",
"nodes": [{
"host": "mqtt服务器IP", #这里写你的mqtt服务器配置
"port": 31883,
"weight": 1
}]
}
}'
删除:
curl http://127.0.0.1:9180/apisix/admin/stream_routes/1 \
-H "X-API-KEY: $admin_key" -X DELETE
查询所有路由:
curl -X GET "http://127.0.0.1:9180/apisix/admin/stream_routes" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1"
请求成功示例:

4.测试效果,使用mqttx测试端口连接成功!


9912

被折叠的 条评论
为什么被折叠?



