Apache APISIX 从源码构建指南

Apache APISIX 从源码构建指南

apisix The Cloud-Native API Gateway apisix 项目地址: https://gitcode.com/gh_mirrors/ap/apisix

前言

Apache APISIX 是一个高性能、可扩展的云原生 API 网关。对于开发者而言,从源码构建 APISIX 是深入了解其工作原理、进行二次开发或贡献代码的必要步骤。本文将详细介绍从源码构建 APISIX 的完整流程,包括环境准备、依赖安装、构建步骤以及常见问题的解决方案。

环境准备

1. 获取源码

首先需要获取 APISIX 的源代码,有两种主要方式:

  1. 使用 Git 克隆指定版本:
APISIX_VERSION='3.9.0'
git clone --depth 1 --branch ${APISIX_VERSION} https://github.com/apache/apisix.git apisix-${APISIX_VERSION}
  1. 下载源代码压缩包(不包含测试用例)

2. 系统依赖

确保系统已安装以下基础工具:

  • Git
  • GNU Make
  • GCC 或 Clang 编译器
  • OpenSSL 开发库
  • PCRE 开发库

构建步骤

1. 安装依赖

进入源码目录后,执行以下命令安装 Lua 依赖:

cd apisix-${APISIX_VERSION}
make deps

这个命令会通过 LuaRocks 安装所有必要的 Lua 模块。

2. 构建 APISIX

安装运行时依赖和 CLI 工具:

make install

3. 常见依赖问题解决

在 macOS 上可能会遇到 OpenLDAP 头文件缺失的问题,解决方案:

  1. 安装 OpenLDAP:
brew install openldap
  1. 配置 LuaRocks 变量:
luarocks config variables.LDAP_DIR $(brew --prefix openldap)

对于其他操作系统,类似地需要安装对应的开发包并配置正确的路径。

安装 etcd

APISIX 使用 etcd 作为配置存储,需要单独安装:

Linux 系统

ETCD_VERSION='3.4.18'
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 &

macOS 系统

brew install etcd
brew services start etcd

运行 APISIX

1. 初始化配置

apisix init

2. 测试配置

apisix test

3. 启动服务

apisix start

4. 停止服务

优雅停止(完成现有请求):

apisix quit

强制停止(立即终止):

apisix stop

构建自定义运行时

某些 APISIX 功能需要额外的 Nginx 模块支持,此时需要构建自定义的 OpenResty 运行时(apisix-runtime)。这需要使用专门的构建工具链完成。

测试框架

运行全部测试

make test

运行单个测试用例

prove -Itest-nginx/lib -r t/plugin/openid-connect.t

测试环境准备

  1. 安装 Perl 包管理器 cpanminus
  2. 安装测试依赖:
sudo cpanm --notest Test::Nginx IPC::Run
  1. 克隆 test-nginx 框架:
git clone https://github.com/openresty/test-nginx.git
  1. 设置 Perl 模块路径:
export PERL5LIB=.:$PERL5LIB

卸载 APISIX

完全移除 APISIX 运行时:

make uninstall
make undeps

结语

通过本文的指导,您应该已经成功从源码构建并运行了 Apache APISIX。对于开发者而言,理解构建过程有助于更深入地掌握 APISIX 的架构和工作原理。如果在构建过程中遇到问题,可以参考官方文档或社区资源寻求帮助。

apisix The Cloud-Native API Gateway apisix 项目地址: https://gitcode.com/gh_mirrors/ap/apisix

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赖达笑Gladys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值