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"
相关推荐
SHUIPING_YANG3 分钟前
根据用户id自动切换表查询
java·服务器·数据库
爱吃烤鸡翅的酸菜鱼16 分钟前
IDEA高效开发:Database Navigator插件安装与核心使用指南
java·开发语言·数据库·编辑器·intellij-idea·database
惊涛骇浪、21 分钟前
SpringMVC + Tomcat10
java·tomcat·springmvc
墨染点香34 分钟前
LeetCode Hot100【6. Z 字形变换】
java·算法·leetcode
ldj20201 小时前
SpringBoot为什么使用new RuntimeException() 来获取调用栈?
java·spring boot·后端
超龄超能程序猿1 小时前
Spring 应用中 Swagger 2.0 迁移 OpenAPI 3.0 详解:配置、注解与实践
java·spring boot·后端·spring·spring cloud
江南一点雨1 小时前
Tokenizer 和 BPE
后端
风象南1 小时前
SpringBoot配置属性热更新的轻量级实现
java·spring boot·后端
洛阳泰山1 小时前
Spring Boot 整合 Nacos 实战教程:服务注册发现与配置中心详解
java·spring boot·后端·nacos
Y4090011 小时前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记