apisix实现四层转发
背景
来水一篇文章,其实官网都有,论如何在apisix上实现四层转发
什么是apisix
apisix是动态、实时、高性能的 API 网关,构建于 OpenResty 之上,支持热加载配置、灰度发布、蓝绿部署等功能,同时具有良好的可扩展性和易用性。
管理接口参考
参考:(以2.4版本为例)
https://625a57e513f19e48ae3a4468--old-docs-apache-apisix.netlify.app/zh/docs/apisix/2.4/admin-api/#route
基于tcp协议动态代理
参考:(以2.4版本为例)
https://625a57e513f19e48ae3a4468--old-docs-apache-apisix.netlify.app/zh/docs/apisix/2.4/stream-proxy/
步骤1:激活stream_routes模块
在 conf/config.yaml 配置文件设置 stream_proxy 选项,默认是开启的
apisix:
stream_proxy: # TCP/UDP proxy
tcp: # TCP proxy address list
- 9100
重启服务,使其配置生效
验证模块是否生效:
curl http://xxx.xxx.xxx.xxx:xxx/apisix/admin/stream_routes -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1'
步骤2:添加配置
例如:
配置多节点代理,启动本机的1302端口,tcp协议,代理"172.16.10.251:1301","172.16.10.252:1301"
(请求打到本机的1302端口,轮询策略roundrobin,转发到后端的两个节点的1301端口上)
配置如下:
curl 'http://xxx.xxx.xxx.xxx:xxx/apisix/admin/stream_routes/1' \
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' \
-H 'Content-Type: application/json;charset=UTF-8' \
-X PUT \
-d '{"server_port":1302,"upstream":{"nodes":{"172.16.10.251:1301":1,"172.16.10.252:1301":1},"type":"roundrobin"},"plugins":{},"desc":"tcp1301"}' \
--compressed \
--insecure
响应报文:
{"node":{"createdIndex":121,"value":{"desc":"tcp1301","upstream":{"type":"roundrobin","hash_on":"vars","nodes":{"172.16.10.251:1301":1,"172.16.10.252:1301":1}},"server_port":1302,"id":"1","plugins":{}},"modifiedIndex":121,"key":"\/apisix\/stream_routes\/1"},"action":"set"}
查看配置:
curl 'http://xxx.xxx.xxx.xxx:xxx/apisix/admin/stream_routes/1' -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1'
响应报文:
{"node":{"createdIndex":121,"value":{"desc":"tcp1301","upstream":{"type":"roundrobin","hash_on":"vars","nodes":{"172.16.10.251:1301":1,"172.16.10.252:1301":1}},"server_port":1302,"id":"1","plugins":{}},"modifiedIndex":121,"key":"\/apisix\/stream_routes\/1"},"action":"get"}
如果添加错了,删除配置:
curl 'http://xxx.xxx.xxx.xxx:xxx/apisix/admin/stream_routes/1' -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X DELETE
备注
1.修改(和创建一样,指定id=1,PUT正确的报文就行)
2.还有一种创建可以用POST,不指定id,随机生产id。
总结
Restful API 大法好啊
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?