安装apisix详细教程

发布时间:2023年12月18日

安装:
docker安装ApiSi
常见问题-提前查阅
1-端口被占用
确保所需的所有端口(默认的 9080/9091/9443/2379/9000)未被其他系统/进程使用

#查询端口占用情况
netstat -antp |grep 9443

如果端口冲突可尝试修改apisix的端口配置,

但不建议,因为会出现端口对应不上,导致apisix服务出错

除非必须修改,那请查看修改此文件

vim /opt/testApiSix/apisix-docker/example/docker-compose.yml
2-cannot access data directory
ETCD出现报错:cannot access data directory: mkdir /bitnami/etcd/data: permission denied,表示etcd启动时未没有创建db的权限,
在opt目录下执行:ETCD会把安装目录下的etcd_data 映射到容器内部的/bitnami/etcd/目录,并在此目录下创建data存储DB数据

chmod -R 777 /opt/apisix-docker/example/
3-容器持续地重启或失败
如果 Docker 容器持续不断地重启或失败,请登录容器并观察日志以诊断问题。

查询容器id

docker ps -a | grep 容器模糊名称

查询容器id对应日志

docker logs -f containerId

#进入到容器内部
docker exec -it containerId /bin/sh

第一步-部署ApiSix前docker基础环境准备

安装前必要部署环境准备
本文基于docker-compose安装APISIX, 所以需要提前安装好docker、docker-compose。
必要条件如下
1.Linux服务器Centos7.2(注:服务器操作系统版本)
2.Linux已部署Docker(注:如没安装,请参照下面连接第一步到第三步)
安装部署docker与docker-compose的步骤
2.Linux已部署Docker-Compose(注:如没安装,请参照下面连接第一步到第四步)
安装部署docker与docker-compose的步骤

**

第二步-docker部署安装APISIX-分批次操作

**
apisix-docker对应github地址,为下列链接
apisix-docker对应github地址

2.1-从远程github仓库获取ApiSix的部署全家桶

切换到安装目录,如/opt

cd /opt
#将 Apache APISIX 的 Docker 镜像下载到本地
git clone https://github.com/apache/apisix-docker.git
2.2-赋权限

赋权限(不执行,会报:ETCD容器启动时报错:

cannot access data directory: mkdir /bitnami/etcd/data: permission denied,

表示etcd启动时未没有创建db的权限)

chmod -R 777 /opt/apisix-docker/example/
2.3-切换目录,使用docker命令安装部署apisix已经被打好的包

将当前的目录切换到 apisix-docker/example 路径下

cd /opt/apisix-docker/example

运行 docker-compose 命令,安装 Apache APISIX

确保所需的所有端口(默认的 9080/9091/9443/2379/9000)未被其他系统/进程使用,再执行下面命令

#查询端口占用情况
netstat -antp |grep 9443

如被占用

如果端口冲突可尝试修改apisix的端口配置,

但不建议,因为会出现端口对应不上,导致apisix服务出错

除非必须修改,那请查看修改此文件

vim /opt/testApiSix/apisix-docker/example/docker-compose.yml

修改完之后,再执行下列命令启动apisix容器

docker-compose -p docker-apisix up -d

其中example目录结构如下:
在这里插入图片描述

第三步-验证APISIX所需服务是否安装成功

3.1-docker ps -a | grep apisix查看以下5个容器是否都已经启动

docker ps -a | grep 模糊匹配服务名

docker ps -a | grep apisix
docker ps -a | grep etcd
docker ps -a |grep dashboard
docker ps -a |grep grafana
docker ps -a |grep prometheus
如下图-右侧显示up,即为正常启动,如不是up标识,

如不是up标识,进入各自的容器,查看容器启动日志

docker logs -f 复制上面图片中的左侧容器id,以左上角举例

docker logs -f 60ce72be6caa
排查完所有未启动成功的容器,修正启动成功之后,进入网址

3.3-访问apisix-dashboard
将IP替换成实际的部署APISIX的服务器IP

http://IP:9000
默认账号密码admin/admin

第四步-扩展docker-compose操作与docker操作

4.1-docker-compose操作

#拉取镜像
docker-compose pull
#创建并启动镜像
docker-compose -p docker-apisix up -d
#停止并删除镜像
docker-compose -p docker-apisix down
#启动服务
docker-compose -p docker-apisix start
#停止服务
docker-compose -p docker-apisix stop
4.2-docker操作

#停止、启动、kill指定容器
docker stop containerid
docker start containerid
docker kill containerid

查看运行的容器

docker ps
#停止指定容器
docker stop $(docker ps -qa)
#删除全部容器
docker rm $(docker ps -qa)
#删除指定容器
docker rmi containerid
#查看所有镜像
docker images
#查看容器日志
docker logs -f containerid
#进入到容器内部
docker exec -it containerid /bin/sh

后面备注:

启动etcd:
systemctl start etcd

docker安装:
镜像配置文件:
/home/apisix/apisix-docker/example/
下载并启动镜像:
启动所有镜像:docker-compose -p docker-apisix up

实践操作:

添加路由:
? curl “http://127.0.0.1:9180/apisix/admin/routes/1” -X PUT -d ’
{
“methods”: [“GET”],
“host”: “zhiyou.com”,
“uri”: “/anything/*”,
“upstream”: {
“type”: “roundrobin”,
“nodes”: {
“httpbin.org:80”: 1
}
}
}’ -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’

正常会得到如下所示的结果

{“value”:{“create_time”:1679392758,“methods”:[“GET”],“host”:“youdianzhishi.com”,“status”:1,“priority”:0,“update_time”:1679392758,“upstream”:{“pass_host”:“pass”,“hash_on”:“vars”,“type”:“roundrobin”,“nodes”:{“httpbin.org:80”:1},“scheme”:“http”},“id”:“1”,“uri”:“/anything/*”},“key”:“/apisix/routes/1”}

文章来源:https://blog.csdn.net/leaning_java/article/details/134959010
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。