Centos7 Docker安装APISIX

1 基础介绍

1.1 概念

Apache APISIX 是 Apache 软件基金会下的云原生 API 网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务熔断、身份认证、可观测性等丰富的流量管理功能。我们可以使用 Apache APISIX 来处理传统的南北向流量,也可以处理服务间的东西向流量。同时,它也支持作为 K8s Ingress Controller 来使用。

1.2 特性

多平台支持: APISIX 提供了多平台解决方案,它不但支持裸机运行,也支持在 Kubernetes 中使用,还支持与 AWS Lambda、Azure Function、Lua 函数和 Apache OpenWhisk 等云服务集成。
全动态能力: APISIX 支持热加载,这意味着你不需要重启服务就可以更新 APISIX 的配置。
精细化路由: APISIX 支持使用 NGINX 内置变量做为路由的匹配条件,你可以自定义匹配函数来过滤请求,匹配路由。
运维友好: APISIX 支持与以下工具和平台集成:HashiCorp Vault、Zipkin、Apache SkyWalking、Consul、Nacos、Eureka。通过 APISIX Dashboard,运维人员可以通过友好且直观的 UI 配置 APISIX。
多语言插件支持: APISIX 支持多种开发语言进行插件开发,开发人员可以选择擅长语言的 SDK 开发自定义插件。

1.3 架构图

在这里插入图片描述

2 快速安装

2.1 前提条件

在开始使用 APISIX 之前,请确保你已经安装以下应用:Docker 和 Docker Compose。
参考博客:
Centos7上安装Docker
https://blog.csdn.net/weixin_44917045/article/details/128749333

Centos7上安装docker-compose
https://blog.csdn.net/weixin_44917045/article/details/128752105

2.2 安装步骤

我们将使用 Docker 安装 APISIX 并启用 Admin API。

2.2.1 git命令克隆apisix-docker仓库

在win10电脑上使用git克隆apisix-docker仓库,并压缩为apisix-docker.zip压缩文件。
git clone https://github.com/apache/apisix-docker.git
在这里插入图片描述
使用rz上传指令上传apisix-docker.zip文件至/usr/local/apisix-docker目录中并解压。
在这里插入图片描述

2.2.2 docker-compose启动apisix

切换目录至/usr/local/apisix-docker/example,执行指令docker-compose -p docker-apisix up -d
在这里插入图片描述
在这里插入图片描述
注意:请确保其他系统进程没有占用 9080、9180、9443 和 2379 端口。

使用docker ps查看apisix相关容器运行情况。
在这里插入图片描述
发现apisix容器状态处于一直重启状态,使用docker logs apisix查看容器运行日志,报错如下:
在这里插入图片描述

nginx: [alert] could not open error log file: open() "/usr/local/apisix/logs/error.log" failed (13: Permission denied)

解决办法:
具体的解决方法不确定,我是升级了docker版本,授予example文件夹权限,再重新启动就好了。
请参考github上提供的解决办法:https://github.com/apache/apisix-docker/issues/325

授予example文件夹权限
chmod -R 777 /usr/local/apisix-docker/example/
升级docker版本至20.10.18,docker版本不易过低。

重新启动apisix,相关容器运行正常。
在这里插入图片描述
至此,在docker中安装apisix就安装成功了!

2.2.3 访问apisix dashboard

在浏览器上访问http://192.168.131.44:9000即可访问apisix dashboard。
apisix提供了强大的AdminAPI和Dashboard供用户使用,用户可以通过AdminAPI提供的相关指令来创建路由和上游服务,并将路由和上游服务进行绑定。当一个请求到达apisix时,apisix会将请求转发到指定的上游服务中。
为了操作简单,我们这里使用的是在Dashboard中创建路由和服务。
在这里插入图片描述

3 简单使用

3.1 准备接口

为了方便测试,我们创建一个SpringBoot项目,提供一个/user/test接口,对项目按照8002和8003端口进行打包,/user/test接口返回的内容做了区分。

第一个服务

nohup java -jar /home/images/api/backend-1.0-SNAPSHOT.jar \
--server.port=8002 \
2>&1 > /home/images/api/nohup.log &

在这里插入图片描述
在这里插入图片描述

第二个服务

nohup java -jar /home/images/api2/backend-1.0-SNAPSHOT.jar \
--server.port=8003 \
2>&1 > /home/images/api2/nohup.log &

在这里插入图片描述
在这里插入图片描述

3.2 创建服务

服务由路由中公共的插件配置、上游目标信息组合而成。服务与路由、上游关联,一个服务可对应一组上游节点、可被多条路由绑定。
创建一个名为test-service的服务,负载均衡算法为带权轮询,目标服务为192.168.44.131:8002、192.168.44.131:8003
在这里插入图片描述
在这里插入图片描述

3.3 创建路由

路由(Route)是请求的入口点,它定义了客户端请求与服务之间的匹配规则。路由可以与服务(Service)、上游(Upstream)关联,一个服务可对应一组路由,一个路由可以对应一个上游对象(一组后端服务节点),因此,每个匹配到路由的请求将被网关代理到路由绑定的上游服务中。
创建一个名为test-route的路由,绑定的服务为test-service,暂时先不绑定上游服务。路由可以配置上游服务、插件等信息。为了简单测试,我们暂时不进行配置。
在这里插入图片描述
在这里插入图片描述

3.4 测试请求

当路由创建完成后,可以通过以下命令访问上游服务。http://192.168.44.131:9080/user/test,该请求将被 APISIX 转发到http://192.168.44.131:8002/user/test和http://192.168.44.131:8003/user/test。
在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值