• 修复在配置了多个 SSL 证书的情况下,只有一个证书生效的问题。

1.4.0

Core

  • Admin API: 路由支持唯一 name 字段 1655
  • 优化 log 缓冲区大小和刷新时间

New plugins

  • Apache Skywalking plugin
  • :sunrise: Keycloak Identity Server Plugin 1701
  • Echo Plugin
  • :sunrise: Consume Restriction Plugin 1437

Improvements

  • Batch Request : 对每个请求拷贝头 1697
  • SSL 私钥加密
  • 众多插件文档改善

1.3.0

  • 拒绝无效的 header 并对 uri 进行安全编码 #1461
  • 默认只允许本地环回地址 127.0.0.1 访问 admin API 和 dashboard.

Plugin

  • 新增 batch request 插件.
  • 实现完成 插件. #1414

1.2.0

1.2 版本在内核以及插件上带来了非常多的更新。

Core

  • :sunrise: 支持 etcd 集群.
  • 支持在 header_filterbody_filterlog 阶段运行全局插件. #1364
  • 将目录 lua/apisix 修改为 apisix(不向下兼容).
  • 增加 dashboard 子模块. #1360
  • 允许自定义共享字典.

Plugin

  • 新增 Apache Kafka 插件.
  • :sunrise: 新增 CORS 插件. #1327
  • 新增 TCP logger 插件.
  • :sunrise: 新增 UDP logger 插件. 1070
  • 新增 proxy mirror 插件.
  • :sunrise: 新增 proxy cache 插件. #1153
  • 在 proxy-rewrite 插件中废弃 websocket 开关(不向下兼容).
  • OAuth 插件中增加基于公钥的自省支持. #1266
  • response-rewrite 插件通过 base64 来支持传输二进制数据.
  • gRPC 转码插件支持 deadline. #1149
  • limit count 插件支持 redis 权限认证.
  • Zipkin 插件支持名字和本地服务器 ip 的记录. #1386
  • Wolf-Rbac 插件增加 change_pwduser_info 参数.

Admin API

  • 对调用 Admin API 增加 key-auth 权限认证(not backward compatible).
  • 隐藏 SSL 私钥的返回值. #1240

Bugfix

  • 在复用 table 之前遗漏了对数据的清理 (会引发内存泄漏). #1134
  • 如果 yaml 中路由非法就打印警告信息.
  • 使用空字符串替代空的 balancer IP. #1166
  • 修改 node-status 和 heartbeat 插件没有 schema 的问题.
  • basic-auth 增加 required 字段. #1251
  • 检查上游合法节点的个数.

1.1.0

这个版本主要是加强代码的稳定性,以及增加更多的文档。

Core

  • 每次跑测试用例都指定 perl 包含路径。 #1097
  • 增加对代理协议的支持。
  • 增加用于校验 nginx.conf 的命令。 #1112
  • 支持「nginx 最多可以打开文件数」可配置,并增大其默认配置。 #1098
  • 优化日志模块。
  • 支持 SO_REUSEPORT 。 #1085

Doc

  • 增加 Grafana 元数据下载链接. #1119
  • 更新 README.md。
  • 增加 wolf-rbac 插件说明文档 #1116
  • 更新 rpm 下载链接。
  • 增加更多英文文章链接。 #1092
  • 增加文档贡献指引。
  • 检查更新「快速上手」文档。 #1084
  • 检查更新「插件开发指南」。
  • 更新 admin-api-cn.md 。 #1067
  • 更新 architecture-design-cn.md 。

CI

  • 移除不再必须的补丁。
  • 修复使用 luarocks 安装时路径错误问题。#1068
  • 为 luarocks 安装专门配置一个 travis 进行回归测试。
  • 「节点状态」插件使用 nginx 内部请求替换原来的外部请求。 #1109
  • 增加 wolf-rbac 插件。
  • 增加 udp-logger 插件。 #1070

这个版本主要是加强代码的稳定性,以及增加更多的文档。

Core

  • :sunrise: 支持路由的优先级。可以在 URI 相同的条件下,根据 header、args、优先级等条件,来匹配到不同的上游服务。 #998
  • 在没有匹配到任何路由的时候,返回错误信息。以便和其他的 404 请求区分开。
  • dashboard 的地址 /apisix/admin 支持 CORS。#982
  • jsonschema 校验器返回更清晰的错误提示。
  • 升级 ngx_var 模块到 0.5 版本。#1005
  • 升级 lua-resty-etcd 模块到 0.8 版本。
  • 在开发模式下,自动把 worker 数调整为 1。#926
  • 从代码仓库中移除 nginx.conf 文件,它每次都会自动生成,不可手工修改。

Doc

  • 增加如何自定义开发插件的文档。
  • 修复 serverless 插件文档中错误的示例。#1006
  • 增加 Oauth 插件的使用文档。
  • 增加 dashboard 编译的文档。#985
  • 增加如何进行 a/b 测试的文档。
  • 增加如何开启 MQTT 插件的文档。#916

Test case

  • 增加 key-auth 插件正常情况下的测试案例。#964

0.9.0

Core

  • 支持使用 Tengine 运行 APISIX。
  • :sunrise: 启用 HTTP2 并支持设置 ssl_protocols。 #663
  • 增加高级调试模式,可在不重启的服务的情况下动态打印指定模块方法的请求参数或返回值。
  • 安装程序增加了仪表盘开关,支持用户自主选择是否安装仪表板程序。 #686
  • 取消对 R3 路由的支持,并移除 R3 路由模块。

Plugins

  • :sunrise: : URI 重定向插件。 #732
  • :支持 header 删除功能。 #658
  • : 通过 聚合 APISIX 节点之间将共享流量限速结果,实现集群流量限速。#624

lua-resty-*

  • lua-resty-radixtree
    • 支持将host + uri作为索引。
  • lua-resty-jsonschema
    • 该扩展作用是JSON数据验证器,用于替换现有的 lua-rapidjson 扩展。

Bugfix

  • 在多个使用者的情况下,key-auth 插件无法正确运行。
  • 无法在 API Server 中获取 serverless插件配置。 #787
  • 解决使用 proxy-write 重写URI时GET参数丢失问题。
  • Zipkin 插件未将跟踪数据设置为请求头. #715
  • 使用本地文件作为配置中心时,跳过 etcd 初始化。
  • 在APISIX CLI中跳过 luajit 环境的check cjson#652
  • 配置 Upstream 时,选择 balancer 类型为 chash 时,支持更多Nginx内置变量作为计算key。

Dependencies

  • 使用 全局替换 lua-rapidjson 扩展,lua-resty-jsonschema 解析速度更快,更容易编译。

0.8.0

这个版本带来很多新的特性,比如四层协议的代理, 支持 MQTT 协议代理,以及对 ARM 平台的支持, 和代理改写插件等。

Core

  • : 使用 yaml 配置文件来更新 APISIX 的配置,这对于 kubernetes 更加友好。 #464
  • :sunrise: . #513
  • 支持. #544
  • 上游增加对域名的支持,而不仅是 IP。
  • 当上游节点的权重为 0 时自动忽略。#536

Plugins

  • :sunrise: MQTT 代理: 支持用 client_id 对 MQTT 进行负载均衡,同时支持 MQTT 3.1 和 5.0 两个协议标准。
  • proxy-rewrite: 对代理到上游的请求进行改写,包括 host, uri 和 schema。

ARM

  • APISIX 可以在基于 ARM64 架构的 Ubuntu 18.04 系统中正常运行, 搭配上 MQTT 插件,你可以把它当做 IoT 网关来使用。
  • lua-resty-ipmatcher
    • 支持 IPv6。
    • 支持 IP 黑白名单和路由。
  • lua-resty-radixtree
    • 允许指定多个 host, remote_addr 和 uri。
    • 允许设置用户自定义函数来做额外的过滤。
    • 使用 lua-resty-ipmatcher 替代 lua-resty-iputils, lua-resty-ipmatcher 支持 IPv6 并且速度更快。

Bugfix

  • 健康检查: 修复在多 worker 下运行时健康检查 checker 的名字错误。 #568

Dependencies

  • lua-tinyyaml 从源码中移除,通过 Luarocks 来安装。

Core

  • :sunrise: : 支持 gRPC 协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API. #395
  • : 默认的路由器更改为 radix tree,支持把 uri、host、cookie、请求头、请求参数、Nginx 内置变量等作为路由的条件,并支持等于、大于、小于等常见操作符,更加强大和灵活. 需要注意的是,这个改动不向下兼容,所有使用历史版本的用户,需要手动修改路由才能正常使用#414
  • 动态上游支持更多的参数,可以指定上游的 uri 和 host,以及是否开启 websocket.
  • 支持从 ctx.var 中直接获取 cookie 中的值. #449
  • 路由支持 IPv6.

Plugins

  • :sunrise: : 支持 serverless,用户可以把任意 Lua 函数动态的在网关节点上运行。用户也可以把这个功能当做是轻量级的插件来使用。#86
  • IdP 支持: 支持外部的身份认证服务,比如 Auth0,okta 等,用户可以借此来对接 Oauth2.0 等认证方式。
  • 限流限速支持更多的限制 key,比如 X-Forwarded-For 和 X-Real-IP,并且允许用户把 Nginx 变量、请求头和请求参数作为 key.
  • IP 黑白名单 支持 IP 黑白名单,提供更高的安全性。

CLI

  • 增加 version 指令,获取 APISIX 的版本号.

Admin

  • 支持 PATCH API,可以针对某个配置单独修改,而不再用提交整段配置。

Dashboard

  • :sunrise: 增加在线版本的 dashboard,用户不用安装即可. #374

0.6.0

这个版本带来很多新的特性,比如健康检查、服务熔断、debug 模式,分布式追踪、JWT 认证等,以及内置的 dashboard.

Core

  • 健康检查和服务熔断: 对上游节点开启健康检查,智能判断服务状态进行熔断和连接.
  • 阻止ReDoS(Regular expression Denial of Service). #252
  • 支持 debug 模式.
  • 允许自定义路由. #364
  • 路由支持 host 和 uri 的组合.
  • 允许在 balance 阶段注入插件. #299
  • 为 upstream 和 service 在 schema 中增加描述信息.

Plugins

  • :sunrise: : 支持 Zipkin 和 Apache SkyWalking. #304
  • . #303

CLI

  • allow 指令中支持多个 ip 地址. #340
  • 支持在 nginx.conf 中配置 real_ip 指令,以及增加函数来获取 ip.

Dashboard

  • 增加内置的 dashboard.
  • 在 Travis CI 中支持 OSX. #217