Centos7 Docker安装APISIX

Centos7 Docker安装APISIX

  • 1 基础介绍
    • 1.1 概念
    • 1.2 特性
    • 1.3 架构图
  • 2 快速安装
    • 2.1 前提条件
    • 2.2 安装步骤
      • 2.2.1 git命令克隆apisix-docker仓库
      • 2.2.2 docker-compose启动apisix
      • 2.2.3 访问apisix dashboard
  • 3 简单使用
    • 3.1 准备接口
    • 3.2 创建服务
    • 3.3 创建路由
    • 3.4 测试请求

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 架构图

Centos7 Docker安装APISIX_第1张图片

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
Centos7 Docker安装APISIX_第2张图片
使用rz上传指令上传apisix-docker.zip文件至/usr/local/apisix-docker目录中并解压。
Centos7 Docker安装APISIX_第3张图片

2.2.2 docker-compose启动apisix

切换目录至/usr/local/apisix-docker/example,执行指令docker-compose -p docker-apisix up -d
Centos7 Docker安装APISIX_第4张图片
Centos7 Docker安装APISIX_第5张图片
注意:请确保其他系统进程没有占用 9080、9180、9443 和 2379 端口。

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

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中创建路由和服务。
Centos7 Docker安装APISIX_第7张图片

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 &

Centos7 Docker安装APISIX_第8张图片
Centos7 Docker安装APISIX_第9张图片

第二个服务

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

Centos7 Docker安装APISIX_第10张图片
Centos7 Docker安装APISIX_第11张图片

3.2 创建服务

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

3.3 创建路由

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

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。
Centos7 Docker安装APISIX_第16张图片Centos7 Docker安装APISIX_第17张图片

你可能感兴趣的:(编程技术,apisix)