Apache APISIX 源码编译与开发环境搭建指南

Apache APISIX 源码编译与开发环境搭建指南

【免费下载链接】apisix The Cloud-Native API Gateway 【免费下载链接】apisix 项目地址: 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

这两个命令会完成以下工作:

  1. make deps:安装 APISIX 运行时所需的 Lua 库
  2. make install:安装 apisix-runtimeapisix 命令行工具

常见依赖问题解决

在 macOS 上,你可能会遇到缺少 LDAP/PCRE/openssl 头文件的错误。这是因为某些依赖需要系统级别的库支持。解决方法如下:

  1. 安装 openldap:

    brew install openldap
    
  2. 配置 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 提供了两种停止方式:

  1. 优雅停止(完成所有请求后再停止):

    apisix quit
    
  2. 强制停止(立即停止,丢弃所有请求):

    apisix stop
    

构建 APISIX-Runtime

某些高级功能需要定制化的 OpenResty 环境(称为 APISIX-Runtime)。你可以使用专门的构建工具来创建包含额外 NGINX 模块的 OpenResty 发行版。

测试用例运行

APISIX 提供了完整的测试套件,运行测试是验证修改是否正确的关键步骤。

安装测试依赖

  1. 安装 cpanminus:

    sudo cpan App::cpanminus
    
  2. 安装测试依赖:

    sudo cpanm --notest Test::Nginx IPC::Run
    
  3. 克隆 test-nginx 仓库:

    git clone https://github.com/openresty/test-nginx.git
    

运行测试

  1. 设置 Perl 模块路径:

    export PERL5LIB=.:$PERL5LIB
    
  2. 运行全部测试:

    make test
    
  3. 运行单个测试文件:

    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 【免费下载链接】apisix 项目地址: https://gitcode.com/GitHub_Trending/ap/apisix

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

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

抵扣说明:

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

余额充值