Skip to main content
Version: 3.11

APISIX 安装指南

本文将介绍如何在你的环境中安装并运行 APISIX。

关于如何快速运行 Apache APISIX,请参考入门指南

安装 APISIX#

你可以选择以下任意一种方式安装 APISIX:

使用此方法安装 APISIX,你需要安装 DockerDocker Compose

首先下载 apisix-docker 仓库。

git clone https://github.com/apache/apisix-docker.git
cd apisix-docker/example

然后,使用 docker-compose 启用 APISIX。

docker-compose -p docker-apisix up -d

安装 etcd#

APISIX 使用 etcd 作为配置中心进行保存和同步配置。在安装 APISIX 之前,需要在你的主机上安装 etcd。

如果你在安装 APISIX 时选择了 Docker 或 Helm 安装,那么 etcd 将会自动安装;如果你选择其他方法或者需要手动安装 APISIX,请参考以下步骤安装 etcd:

ETCD_VERSION='3.5.4'
wget https://github.com/etcd-io/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-linux-amd64.tar.gz
tar -xvf etcd-v${ETCD_VERSION}-linux-amd64.tar.gz && \
cd etcd-v${ETCD_VERSION}-linux-amd64 && \
sudo cp -a etcd etcdctl /usr/bin/
nohup etcd >/tmp/etcd.log 2>&1 &

后续操作#

配置 APISIX#

通过修改本地 ./conf/config.yaml 文件,或者在启动 APISIX 时使用 -c--config 添加文件路径参数 apisix start -c <path string>,完成对 APISIX 服务本身的基本配置。默认配置不应修改,可以在 apisix/cli/config.lua 中找到。

比如将 APISIX 默认监听端口修改为 8000,其他配置保持默认,在 ./conf/config.yaml 中只需这样配置:

./conf/config.yaml
apisix:
node_listen: 8000 # APISIX listening port

比如指定 APISIX 默认监听端口为 8000,并且设置 etcd 地址为 http://foo:2379,其他配置保持默认。在 ./conf/config.yaml 中只需这样配置:

./conf/config.yaml
apisix:
node_listen: 8000 # APISIX listening port

deployment:
role: traditional
role_traditional:
config_provider: etcd
etcd:
host:
- "http://foo:2379"
warning

请不要手动修改 APISIX 安装目录下的 ./conf/nginx.conf 文件。当 APISIX 启动时,会根据 config.yaml 的配置自动生成新的 nginx.conf 并自动启动服务。

更新 Admin API key#

建议修改 Admin API 的 key,保护 APISIX 的安全。

请参考如下信息更新配置文件:

./conf/config.yaml
deployment:
admin:
admin_key
-
name: "admin"
key: newsupersecurekey # 请修改 key 的值
role: admin

更新完成后,你可以使用新的 key 访问 Admin API:

curl http://127.0.0.1:9180/apisix/admin/routes?api_key=newsupersecurekey -i

为 APISIX 添加 systemd 配置文件#

如果你是通过 RPM 包安装 APISIX,配置文件已经自动安装,你可以直接使用以下命令:

systemctl start apisix
systemctl stop apisix

如果你是通过其他方法安装的 APISIX,可以参考配置文件模板进行修改,并将其添加在 /usr/lib/systemd/system/apisix.service 路径下。

如需了解 APISIX 后续使用,请参考入门指南获取更多信息。