Apache APISIX 源码编译与开发环境搭建指南
【免费下载链接】apisix The Cloud-Native API Gateway 项目地址: https://gitcode.com/GitHub_Trending/ap/apisix
前言
Apache APISIX 是一个高性能、可扩展的开源 API 网关。对于开发者来说,从源码构建 APISIX 是深入了解其工作原理、进行二次开发或贡献代码的第一步。本文将详细介绍如何从源码构建 APISIX,并搭建完整的开发环境。
环境准备
在开始构建前,请确保你的系统满足以下基本要求:
- 类 Unix 操作系统(Linux 或 macOS)
- Git 版本控制系统
- GNU Make 工具
- 基本的编译工具链(gcc/clang 等)
源码获取
APISIX 的源码可以通过两种方式获取:
方法一:通过 Git 克隆(推荐)
# 指定要安装的版本
APISIX_VERSION='3.9.0'
# 克隆指定版本的代码
git clone --depth 1 --branch ${APISIX_VERSION} https://github.com/apache/apisix.git apisix-${APISIX_VERSION}
这种方式获取的源码包含完整的测试用例,适合开发调试。
方法二:下载源码包
你也可以从官方下载页面获取源码包,但请注意这种方式可能不包含测试用例。
依赖安装
切换到源码目录后,执行以下命令安装依赖:
cd apisix-${APISIX_VERSION}
make deps
make install
这两个命令会完成以下工作:
make deps:安装 APISIX 运行时所需的 Lua 库make install:安装apisix-runtime和apisix命令行工具
常见依赖问题解决
在 macOS 上,你可能会遇到缺少 LDAP/PCRE/openssl 头文件的错误。这是因为某些依赖需要系统级别的库支持。解决方法如下:
-
安装 openldap:
brew install openldap -
配置 luarocks 的变量:
luarocks config variables.LDAP_DIR $(brew --prefix openldap)
或者在 ~/.luaorcks/config-5.1.lua 中添加:
variables = {
LDAP_DIR = "/opt/homebrew/cellar/openldap/2.6.1",
LDAP_INCDIR = "/opt/homebrew/cellar/openldap/2.6.1/include"
}
etcd 安装与配置
APISIX 使用 etcd 作为配置存储和同步的后端。在运行 APISIX 前需要先安装 etcd。
Linux 系统安装 etcd
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 系统安装 etcd
brew install etcd
brew services start etcd
APISIX 服务管理
初始化配置
apisix init
此命令会初始化 NGINX 配置文件和 etcd 相关配置。
测试配置
apisix test
该命令会检查配置文件的语法是否正确。
启动服务
apisix start
停止服务
APISIX 提供了两种停止方式:
-
优雅停止(完成所有请求后再停止):
apisix quit -
强制停止(立即停止,丢弃所有请求):
apisix stop
构建 APISIX-Runtime
某些高级功能需要定制化的 OpenResty 环境(称为 APISIX-Runtime)。你可以使用专门的构建工具来创建包含额外 NGINX 模块的 OpenResty 发行版。
测试用例运行
APISIX 提供了完整的测试套件,运行测试是验证修改是否正确的关键步骤。
安装测试依赖
-
安装 cpanminus:
sudo cpan App::cpanminus -
安装测试依赖:
sudo cpanm --notest Test::Nginx IPC::Run -
克隆 test-nginx 仓库:
git clone https://github.com/openresty/test-nginx.git
运行测试
-
设置 Perl 模块路径:
export PERL5LIB=.:$PERL5LIB -
运行全部测试:
make test -
运行单个测试文件:
prove -Itest-nginx/lib -r t/plugin/openid-connect.t
测试常见问题
如果遇到 lua_package_path 错误,可能是因为 NGINX 路径未正确设置:
export PATH=/usr/local/openresty/nginx/sbin:$PATH
卸载 APISIX
如果需要完全移除 APISIX,可以执行:
make uninstall && make undeps
警告:此操作会删除所有相关文件,请谨慎执行。
结语
通过本文的步骤,你应该已经成功从源码构建了 APISIX 并搭建好了开发环境。源码构建方式虽然步骤较多,但能让你更深入地理解 APISIX 的工作原理,为后续的开发和贡献打下坚实基础。
【免费下载链接】apisix The Cloud-Native API Gateway 项目地址: https://gitcode.com/GitHub_Trending/ap/apisix
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



