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
- 修改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,如果需要增加认证,跨域等一些服务,直接使用插件即可,无需大量修改项目代码,直接修改apisix即可
- 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社区的文档,做的非常好