Apache APISIX是一个动态、实时、高性能的API网关,APISIX提供丰富的流量管理功能,如负载平衡、动态上游、金丝雀释放、断路、认证、可观察性等。基于 Nginx 和 etcd,支持动态路由和插件热加载,为所有用户提供 API 和微服务。

目前Apache APISIX 2.8 版本正式发布!这个版本有 30+ 开发者参与,共提交了 100+ PR,支持了 1 个新功能、1 个新体验、2 个新插件、2 个新玩法,喜欢的朋友欢迎下载!

功能介绍

您可以使用Apache APISIX作为流量入口来处理所有的业务数据,包括动态路由、动态上游、动态证书、A/B测试、金丝雀发布、蓝绿部署、极限速率、防御恶意攻击、指标、监控警报、服务可观察性、服务治理等。

所有平台

云原生。平台不可知,没有厂商锁定,APISIX可以从裸机到Kubernetes运行。

运行环境。同时支持OpenResty和Tengine。

支持ARM64。不用担心对infra技术的锁定。

多种协议

TCP/UDP代理。动态TCP/UDP代理。

Dubbo代理。动态HTTP到Dubbo代理。

动态MQTT代理。支持通过客户端_id来平衡MQTT的负载,都支持MQTT 3.1.*, 5.0。

gRPC代理。代理gRPC流量。

gRPC转码。支持协议转码,使客户可以通过使用HTTP/JSON访问你的gRPC API。

代理Websocket

代理协议

代理Dubbo。基于Tengine的Dubbo代理。

HTTP(S)转发代理

SSL:动态加载一个SSL证书。

完全动态

热更新和热插件。持续更新其配置和插件,而无需重新启动!

代理重写。支持重写主机、URI、模式、启用网络接口、请求的头文件,然后再发送到上游。

响应重写。设置自定义的响应状态代码、正文和头信息给客户端。

无服务器。在APISIX的每个阶段调用函数。

动态负载平衡。循环式负载平衡,有权重。

基于哈希的负载平衡。用一致的散列会话进行负载平衡。

健康检查。在上游节点上启用健康检查,并将在负载平衡期间自动过滤不健康的节点,以确保系统稳定。

断路器。对不健康的上游服务进行智能跟踪。

代理镜像。提供镜像客户端请求的能力。

流量分割。允许用户在各种上游之间逐步引导一定比例的流量。

细粒度的路由

支持全路径匹配和前缀匹配

支持所有Nginx内置变量作为路由的条件,因此可以使用cookie、args等作为路由条件,实现金丝雀发布、A/B测试等。

支持各种运算符作为路由的判断条件,例如{"arg_age", ">", 24}。

支持自定义路由匹配功能

IPv6:使用IPv6来匹配路由。

支持TTL

支持优先级

支持批量Http请求

安全性

认证:密钥认证、JWT、基本认证、wolf-rbac

IP白名单/黑名单

引用者白名单/黑名单

IdP:支持外部认证服务,如Auth0、okta等,用户可以借此连接到OAuth 2.0和其他认证方式。

限制要求

限额-计数

限额货币(Limit-currency

反ReDoS(正则表达式拒绝服务)。内置政策,无需配置就可以反ReDoS。

CORS 为你的API启用CORS(跨源资源共享)。

URI阻止器:通过URI阻止客户端请求。

请求验证器

OPS友好型

OpenTracing:支持Apache Skywalking和Zipkin。

与外部服务发现一起工作:除了内置的etcd,它还支持Consul和Nacos,以及Eureka。

监测和度量。普罗米修斯

集群。APISIX节点是无状态的,创建配置中心的集群,请参考etcd集群指南。

高可用性。支持在同一个集群中配置多个etcd地址。

仪表板

版本控制。支持操作的回滚。

CLI:通过命令行启动/停止/重新加载APISIX。

独立的。支持从本地YAML文件加载路由规则,这对kubernetes(k8s)来说更友好。

全局规则。允许对所有请求运行任何插件,例如:限制速率、IP过滤等。

高性能。单核QPS达到18k,平均延迟小于0.2毫秒。

故障注入

REST管理API。使用REST Admin API控制Apache APISIX,默认只允许127.0.0.1访问,你可以修改conf/config.yaml中的allow_admin字段,指定允许调用Admin API的IP列表。另外,请注意,Admin API使用密钥认证来验证调用者的身份。conf/config.yaml中的admin_key字段需要在部署前进行修改以确保安全。

外部记录器。将访问日志导出到外部日志管理工具。(HTTP Logger, TCP Logger, Kafka Logger, UDP Logger)

舵手图

高度的可扩展性

自定义插件。允许钩住常见的阶段,如重写、访问、标题过滤、正文过滤和日志,也允许钩住平衡器阶段。

自定义负载平衡算法。你可以在平衡器阶段使用自定义负载平衡算法。

自定义路由。支持用户自己实现路由算法。

安装方法

通过 RPM 包安装(CentOS 7)

这种安装方式适用于 CentOS 7 操作系统,请运行以下命令安装 Apache APISIX。

Apache APISIX 2.8 官方最新正式版 32位/64位

通过源码包安装

创建一个名为 apisix-2.8 的目录。

Apache APISIX 2.8 官方最新正式版 32位/64位

下载 Apache APISIX Release 源码包

Apache APISIX 2.8 官方最新正式版 32位/64位

解压 Apache APISIX Release 源码包

Apache APISIX 2.8 官方最新正式版 32位/64位

安装运行时依赖的 Lua 库

Apache APISIX 2.8 官方最新正式版 32位/64位

初始化依赖

运行以下命令初始化 NGINX 配置文件和 etcd。

Apache APISIX 2.8 官方最新正式版 32位/64位

启动 Apache APISIX#
运行以下命令启动 Apache APISIX。

Apache APISIX 2.8 官方最新正式版 32位/64位

下载地址

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。