Centos7 Docker安装APISIX

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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.18docker版本不易过低。

重新启动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。
在这里插入图片描述在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: centosDocker