APISIX的安装与测试(springboot服务测试)

安装:

1.1安装依赖:

bash 复制代码
curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh -sL | bash -

1.2 安装 OpenResty

bash 复制代码
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

sudo yum install  openresty 

验证安装

/usr/local/openresty/nginx/sbin/nginx -v

安装必须的库

yum install git gcc luarocks lua-devel

1.3 安装docker和docker compose

bash 复制代码
vi install_docker.sh

粘贴以下内容

bash 复制代码
#!/usr/bin/env bash

set -ex

# 移除旧版本的 Docker
sudo yum remove -y docker \
                 docker-client \
                 docker-client-latest \
                 docker-common \
                 docker-latest \
                 docker-latest-logrotate \
                 docker-logrotate \
                 docker-engine

# 安装依赖包
sudo yum install -y yum-utils

# 设置 Docker 的稳定仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker Engine
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 启动 Docker
sudo systemctl start docker
sudo systemctl enable docker


# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 为 Docker Compose 二进制文件添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 创建符号链接到 /usr/bin 目录(可选)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose || true

# 验证 Docker Compose 是否安装成功
docker-compose --version
bash 复制代码
chmod +x install_docker.sh
sudo ./install_docker.sh

如果docker-compose拉取失败,再次执行以下命令获取

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

1.4 安装etcd 和 APISIX

如果你在安装 APISIX 时选择了 Docker 或 Helm 安装,那么 etcd 将会自动安装;

bash 复制代码
git clone https://github.com/apache/apisix-docker.git
cd apisix-docker/example

修改配置文件:apisix-docker/example/apisix_conf/config.yaml

拉取并启动容器

bash 复制代码
cd apisix-docker/example
docker-compose -p docker-apisix up -d

安装完成并启动

查看是否全部启动:

1.5 测试

1.5.1搭建一个java服务

服务启动访问http://127.0.0.1:8883返回字符串:

Hello 我是apisix222

1.5.2将服务放到服务器上运行。

1.5.2.1打包java服务
1.5.2.2在服务器上安装jdk
java 复制代码
cd /usr/local
mkdir java

tar -zvxf "jdk-8u411-linux-x64 (1).tar.gz" -C /usr/local/java/

vi /etc/profile

# 放入以下命令
export JAVA_HOME=/usr/local/java/jdk1.8.0_411
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

#退出文件并执行
source /etc/profile
java -version
1.5.2.2运行

将打包好的jar包上传到服务器上并执行

java -jar <java服务jar包>

1.5.3 测试网关转发

1.5.3.1 发布API

注意点:1.92.107.128 这个IP地址是你的服务器地址, 如果 APISIX 运行在 Docker 容器中,而你的服务直接运行在主机上,可能存在网络隔离问题。方法一,将你的服务放在同一个docker网络中(舍弃)。方法二直接使用服务器地址。

bash 复制代码
curl -H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1"  -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -d '
{
  "id": "getting-started-hello",
  "uri": "/hello",
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "1.92.107.128:8883": 1
    }
  }
}'
1.5.3.2 访问
bash 复制代码
http://1.92.107.128:9080/hello

则网关会将请求转发到 http://1.92.107.128:8883/hello 去。就会接收到内容 "Hello 我是apisix222"

1.6 其他

bash 复制代码
#查询发布的所有API
curl -i -X GET "http://127.0.0.1:9180/apisix/admin/routes" -H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1"

# 删除发布的APi 根据ID
curl -i -X DELETE "http://127.0.0.1:9180//apisix/admin/routes/3" -H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1"
相关推荐
2401_854391082 分钟前
高效开发:SpringBoot网上租赁系统实现细节
java·spring boot·后端
Cikiss10 分钟前
微服务实战——SpringCache 整合 Redis
java·redis·后端·微服务
wxin_VXbishe11 分钟前
springboot合肥师范学院实习实训管理系统-计算机毕业设计源码31290
java·spring boot·python·spring·servlet·django·php
Cikiss12 分钟前
微服务实战——平台属性
java·数据库·后端·微服务
无敌の星仔21 分钟前
一个月学会Java 第2天 认识类与对象
java·开发语言
OEC小胖胖26 分钟前
Spring Boot + MyBatis 项目中常用注解详解(万字长篇解读)
java·spring boot·后端·spring·mybatis·web
2401_857617621 小时前
SpringBoot校园资料平台:开发与部署指南
java·spring boot·后端
quokka561 小时前
Springboot 整合 logback 日志框架
java·spring boot·logback
计算机学姐1 小时前
基于SpringBoot+Vue的在线投票系统
java·vue.js·spring boot·后端·学习·intellij-idea·mybatis
救救孩子把1 小时前
深入理解 Java 对象的内存布局
java