2022年7月6日10:50:29
官方文档:https://apisix.gitbook.io/apisix-dashboard/ 没什么参考价值
apixis搭建
https://www.cnblogs.com/zx-admin/p/16446720.html
php8 yum安装参考
https://blog.csdn.net/ecba1988/article/details/109991911
首先安装好apisix,和php8
创建一个webman的http socket接口
https://www.workerman.net/doc/webman/install.html
创建socket
https://www.workerman.net/doc/webman/process.html
按照上面的操作就可以
然后修改server.php和process.php的端口
复制一份项目web1和web2,使用vscode的ssh启动服务
web1 http 8787 socket 18888
web2 http 8788 socket 18889
测试工具apipost
apisix网管代理
配置apixis
ui界界面访问:http://192.168.154.131:9000/ 默认admin admin
新增socket代理 测试socet
新增socket代理 测试http
http服务轮询
修改admin api 9080端口 修改成80 或者 443 或者都监听
https://apisix.apache.org/zh/docs/apisix/architecture-design/apisix/
在 /usr/local/apisix/conf 修改 config.yaml
默认不要修改 config-default.yaml 因为修改 config.yaml会覆盖掉config-default.yaml的配置
apisix:
# node_listen: 9080 # APISIX listening port
node_listen: # This style support multiple ports
- 80
主要是yaml格式
使用apixis的好处:
1,这样需要上线新的服务,或者下线服务,可以直接UI手动操作,并且切换服务是动态化的,
2,支持健康检查,主动和被动都支持
3,比如服务a 服务b 服务c,a,b压力大,c的配置更好可以直接修改增加权重,或者直接增加服务d
4,对于不熟悉nginx配置的人员使用,在好不过了,大大减少配置nginx的问题
5,一些限流服务,可以直接在网关操作,不需要单个服务项目去增加限流组件
6,如果需要增加权限认证,跨域等一些服务,直接使用插件即可,无需大量修改项目代码,直接增加插件
7,直接支持消费者,Protocol Buffers,grpc做微服务网关,无需其他网关服务
apixis的一些基本概念
路由
路由(Route)是请求的入口点,它定义了客户端请求与服务之间的匹配规则。路由可以与服务(Service)、上游(Upstream)关联,一个服务可对应一组路由,一个路由可以对应一个上游对象(一组后端服务节点),因此,每个匹配到路由的请求将被网关代理到路由绑定的上游服务中。
上游
上游列表包含了已创建的上游服务(即后端服务),可以对上游服务的多个目标节点进行负载均衡和健康检查。
服务
服务由路由中公共的插件配置、上游目标信息组合而成。服务与路由、上游关联,一个服务可对应一组上游节点、可被多条路由绑定
消费者
消费者是路由的消费方,形式包括开发者、最终用户、API 调用等。创建消费者时,需绑定至少一个认证类插件 包含身份验证、安全防护、流量控制、无服务器架构、可观测性和其他几个类型。
从使用者的角度出发解释一下
路由 Route 就是理解为web框架的请求入口路由
上游 Upstream 就是nginx的Upstream
请求访问到 路由 转发到 Upstream,但是在使用APISIX Dashboard你会发现两者操作界面差不多,但是在路由里面是可以选择
上游服务的,就是为了实现更自由的,和更复杂的业务需求
服务,消费者,Protocol Buffers,插件都是可以互相关联的
如果你看旧版的APISIX Dashboard 你会发现就是和我说的差不多,在2.1.3的版本会让人产生误解,怎么没一个操作都差不多
理解核心的部分就是原来的nginx的反向代理一个路径就是路由,Upstream到不同的节点
socket代理就更简单了,因为涉及不到http的路由,只有端口,直接转发就可以,相反是http请求转发配置更复杂一点
吐槽几点:
1,apixis虽然做的很好,但是开发文档写真的只是个简易的操作手册,没什么操作价值,官方文档没做好
2,没有中文社区,但是有github wiki 邮件列表,只有bug和future反馈,没有上手的指导文档,一些操作只能自己摸索
3,webman不支持配置项目路由前缀,会导致一个大的公司项目不能使用同一个业务域名,需要新增其他业务域名,来解决子路由问题
4,APISIX Dashboard虽然翻译中文版文档,但是非常不好有,不适合基础入门使用的,没有详解的使用说明文档和demo
如果想使用apixis更多非专业的对openresty或者nginx lua熟悉的用户上手,真的需要很多文档的建设,不得不夸一下webman以及workerman社区的文档,做的非常好
最后反馈一个论坛bug上传的gif文件,图片不是是静态的
http服务轮询
可以解密https流量?
证书是给网关的,代理出来的数据应该是解密之后的