一、介绍
Apache APISIX 是一个动态、实时、高性能的 API 网关, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、 A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
Apache APISIX 的技术架构如下图所示:
二、下载镜像
使用docker pull apache/apisix:2.10.0-alpine命令下载apisix镜像。
使用docker pull apache/apisix-dashboard:2.9.0获取apisix-dashboard镜像。
三、启动apisix
1、启动etcd
因为apisix依赖etcd,所以要先保证etcd启动。etcd安装步骤请移步ETCD学习使用-CSDN博客这篇文章。使用命令ps -ef | grep etcd查看是否已经启动。
2、创建配置文件
在宿主机本地创建apisix的配置文件config.yaml。下面的key修改为自己的,这个key是调用apisix的admin相关API需要传的,如果不改会有一个默认的在源码里写死的,如果你部署在公网上会导致被别人攻击,因为知道这个key就可以随意调用你的API操作apisix。
内容如下:
apisix:admin_key:-name: admin# 使用固定API令牌存在安全风险,请在部署到生产环境时进行更新 key: zZ2Trn0WFjk3k34hjsdaReplrVUekVz role: admin
etcd:host: # 可以为同一个etcd集群定义多个etcd主机地址。# 如果您的etcd集群启用TLS,请使用https方案。# 例如 https://127.0.0.1:2379.- "http://192.168.197.131:2379" prefix: /apisix # Apisix配置前缀timeout: 300
3、启动apisix
执行如下命令,启动容器:
docker run -d -p 9080:9080 -v /usr/local/apisix/conf/config.yaml:/usr/local/apisix/conf/config.yaml apache/apisix:2.10.0-alpine
用浏览器访问http://服务器ip:9080/显示如下内容,表示启动成功。
4、启动apisix-dashboard
在指定目录下创建配置文件conf.yaml
内容如下:
conf:listen:host: 0.0.0.0 # Manager API应该监听的地址。# 默认值为0.0.0.0,如果需要指定,请启用。# 该值接受IPv4、IPv6和主机名port: 9000 # '管理器API '应该监听的端口。allow_list: # 如果我们不设置任何IP列表,则默认情况下允许任何IP访问。etcd:endpoints: # 支持为etcd定义多个etcd主机地址cluster- 192.168.197.131:2379# username: "root" #如果没开启授权,可以注掉# password: "123456" #如果没开启授权,可以注掉
authentication:secret:zQ5w5jkLDh3jZpywJ3sskrw6Yv633ruqexpire_time: 3600 # JWT令牌过期时间,单位为秒users: # Yamllint启用规则:comments-缩进- username: adminpassword: password- username: userpassword: password
使用如下命令启动,我这里9000端口被占用了,所以转成了9111端口。
docker run -d -p 9111:9000 -v /usr/local/apisix-dashboard/conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml apache/apisix-dashboard:2.9.0
也可以使用docker-compose启动,docker-compose.yml配置文件如下:
version: '3'
services:apisix-dashboard:restart: alwaysimage: apache/apisix-dashboard:2.9.0container_name: apisix-dashboardports:- "9111:9000"volumes:- /usr/local/apisix-dashboard/conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml- /usr/local/apisix-dashboard/logs/:/usr/local/apisix-dashboard/logs
在浏览器输入服务器ip:9111进入登录界面:
使用配置文件中admin/password即可登录成功。