diff --git a/CHANGELOG.md b/CHANGELOG.md index 65acc5320af1..43f36cc68050 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ title: Changelog ## Table of Contents +- [2.8.0](#280) - [2.7.0](#270) - [2.6.0](#260) - [2.5.0](#250) @@ -43,6 +44,39 @@ title: Changelog - [0.7.0](#070) - [0.6.0](#060) +## 2.8.0 + +### Change + +- change: enable stream proxy only by default [#4580](https://github.com/apache/apisix/pull/4580) + +### Core + +- :sunrise: feat: allow user-defined balancer with metadata in node [#4605](https://github.com/apache/apisix/pull/4605) +- :sunrise: feat: Add option retry_timeout that like nginx's proxy_next_upstream_timeout [#4574](https://github.com/apache/apisix/pull/4574) +- :sunrise: feat: enable balancer phase for plugins [#4549](https://github.com/apache/apisix/pull/4549) +- :sunrise: feat: allow setting separate keepalive pool [#4506](https://github.com/apache/apisix/pull/4506) +- :sunrise: feat: enable etcd health-check [#4191](https://github.com/apache/apisix/pull/4191) + +### Plugin + +- :sunrise: feat: add gzip plugin [#4640](https://github.com/apache/apisix/pull/4640) +- :sunrise: feat(plugin): Add new plugin ua-restriction for bot spider restriction [#4587](https://github.com/apache/apisix/pull/4587) +- :sunrise: feat(stream): add ip-restriction [#4602](https://github.com/apache/apisix/pull/4602) +- :sunrise: feat(stream): add limit-conn [#4515](https://github.com/apache/apisix/pull/4515) +- :sunrise: feat: increase ext-plugin timeout to 60s [#4557](https://github.com/apache/apisix/pull/4557) +- :sunrise: feat(key-auth): supporting key-auth plugin to get key from query string [#4490](https://github.com/apache/apisix/pull/4490) +- :sunrise: feat(kafka-logger): support for specified the log formats via admin API. [#4483](https://github.com/apache/apisix/pull/4483) + +### Bugfix + +- fix(stream): sni router is broken when session reuses [#4607](https://github.com/apache/apisix/pull/4607) +- fix: the limit-conn plugin cannot effectively intercept requests in special scenarios [#4585](https://github.com/apache/apisix/pull/4585) +- fix: ref check while deleting proto via Admin API [#4575](https://github.com/apache/apisix/pull/4575) +- fix(skywalking): handle conflict between global rule and route [#4589](https://github.com/apache/apisix/pull/4589) +- fix: `ctx.var.cookie_*` cookie not found log [#4564](https://github.com/apache/apisix/pull/4564) +- fix(request-id): we can use different ids with the same request [#4479](https://github.com/apache/apisix/pull/4479) + ## 2.7.0 ### Change diff --git a/apisix/core/version.lua b/apisix/core/version.lua index 6db966eb4f28..733c7a632906 100644 --- a/apisix/core/version.lua +++ b/apisix/core/version.lua @@ -15,5 +15,5 @@ -- limitations under the License. -- return { - VERSION = "2.7" + VERSION = "2.8" } diff --git a/docs/ar/README.md b/docs/ar/README.md index 3b914f8b6f49..ffd49a32fc2c 100644 --- a/docs/ar/README.md +++ b/docs/ar/README.md @@ -158,9 +158,9 @@ CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, **ARM64** Ubun - قم بتنزيل أحدث حزمة إصدار لشفرة المصدر: ```shell - $ mkdir apisix-2.7 - $ wget https://downloads.apache.org/apisix/2.7/apache-apisix-2.7-src.tgz - $ tar zxvf apache-apisix-2.7-src.tgz -C apisix-2.7 + $ mkdir apisix-2.8 + $ wget https://downloads.apache.org/apisix/2.8/apache-apisix-2.8-src.tgz + $ tar zxvf apache-apisix-2.8-src.tgz -C apisix-2.8 ``` - تثبيت التبعيات : @@ -197,7 +197,7 @@ CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, **ARM64** Ubun - تثبيت أبيسكس: ```shell - $ sudo yum install -y https://github.com/apache/apisix/releases/download/2.7/apisix-2.7-0.x86_64.rpm + $ sudo yum install -y https://github.com/apache/apisix/releases/download/2.8/apisix-2.8-0.x86_64.rpm ``` - تحقق من إصدار أبيسكس: diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json index 5a2611210c0a..40ac11d8068a 100644 --- a/docs/en/latest/config.json +++ b/docs/en/latest/config.json @@ -1,5 +1,5 @@ { - "version": 2.7, + "version": 2.8, "sidebar": [ { "type": "category", diff --git a/docs/en/latest/how-to-build.md b/docs/en/latest/how-to-build.md index 5f308068d023..fabea3e0f385 100644 --- a/docs/en/latest/how-to-build.md +++ b/docs/en/latest/how-to-build.md @@ -36,7 +36,7 @@ You can install Apache APISIX via RPM package, Docker, Helm Chart, and source re This installation method is suitable for CentOS 7, please run the following command to install Apache APISIX. ```shell -sudo yum install -y https://github.com/apache/apisix/releases/download/2.7/apisix-2.7-0.x86_64.rpm +sudo yum install -y https://github.com/apache/apisix/releases/download/2.8/apisix-2.8-0.x86_64.rpm ``` ### Installation via Docker @@ -49,16 +49,16 @@ Please refer to: [Installing Apache APISIX with Helm Chart](https://github.com/a ### Installation via Source Release Package -1. Create a directory named `apisix-2.7`. +1. Create a directory named `apisix-2.8`. ```shell - mkdir apisix-2.7 + mkdir apisix-2.8 ``` 2. Download Apache APISIX Release source package. ```shell - wget https://downloads.apache.org/apisix/2.7/apache-apisix-2.7-src.tgz + wget https://downloads.apache.org/apisix/2.8/apache-apisix-2.8-src.tgz ``` You can also download the Apache APISIX Release source package from the Apache APISIX website. The [Apache APISIX Official Website - Download Page](https://apisix.apache.org/downloads/) also provides source packages for Apache APISIX, APISIX Dashboard and APISIX Ingress Controller. @@ -66,14 +66,14 @@ Please refer to: [Installing Apache APISIX with Helm Chart](https://github.com/a 3. Unzip the Apache APISIX Release source package. ```shell - tar zxvf apache-apisix-2.7-src.tgz -C apisix-2.7 + tar zxvf apache-apisix-2.8-src.tgz -C apisix-2.8 ``` 4. Install the runtime dependent Lua libraries. ```shell - # Switch to the apisix-2.7 directory - cd apisix-2.7 + # Switch to the apisix-2.8 directory + cd apisix-2.8 # Create dependencies make deps ``` diff --git a/docs/es/latest/README.md b/docs/es/latest/README.md index 27013ec21556..d8c4a1d1899c 100644 --- a/docs/es/latest/README.md +++ b/docs/es/latest/README.md @@ -155,9 +155,9 @@ Hay varias maneras de instalar la versión publicada Apache de APISIX: - Bajar el paquete de publicación más reciente de código fuente: ```shell - $ mkdir apisix-2.7 - $ wget https://downloads.apache.org/apisix/2.7/apache-apisix-2.7-src.tgz - $ tar zxvf apache-apisix-2.7-src.tgz -C apisix-2.7 + $ mkdir apisix-2.8 + $ wget https://downloads.apache.org/apisix/2.8/apache-apisix-2.8-src.tgz + $ tar zxvf apache-apisix-2.8-src.tgz -C apisix-2.8 ``` - Instalar las dependencias: @@ -194,7 +194,7 @@ Hay varias maneras de instalar la versión publicada Apache de APISIX: - Instalar APISIX: ```shell - $ sudo yum install -y https://github.com/apache/apisix/releases/download/2.7/apisix-2.7-0.x86_64.rpm + $ sudo yum install -y https://github.com/apache/apisix/releases/download/2.8/apisix-2.8-0.x86_64.rpm ``` - Chequear versión de APISIX: diff --git a/docs/es/latest/config.json b/docs/es/latest/config.json index 223338a48b53..a5d1916248ce 100644 --- a/docs/es/latest/config.json +++ b/docs/es/latest/config.json @@ -1,4 +1,4 @@ { - "version": 2.7, + "version": 2.8, "sidebar": [] } diff --git a/docs/zh/latest/CHANGELOG.md b/docs/zh/latest/CHANGELOG.md index 173d1d5c6811..c22146774dc3 100644 --- a/docs/zh/latest/CHANGELOG.md +++ b/docs/zh/latest/CHANGELOG.md @@ -23,6 +23,7 @@ title: CHANGELOG ## Table of Contents +- [2.8.0](#280) - [2.7.0](#270) - [2.6.0](#260) - [2.5.0](#250) @@ -43,8 +44,43 @@ title: CHANGELOG - [0.7.0](#070) - [0.6.0](#060) +## 2.8.0 + +### Change + +- 如果启用 stream proxy,默认将不再一并启用 HTTP proxy 功能 [#4580](https://github.com/apache/apisix/pull/4580) + +### Core + +- :sunrise: 允许用户自定义 balancer [#4605](https://github.com/apache/apisix/pull/4605) +- :sunrise: upstream 中添加 retry_timeout,类似于 Nginx 的 proxy_next_upstream_timeout [#4574](https://github.com/apache/apisix/pull/4574) +- :sunrise: 允许在 balancer_by_lua 中运行插件 [#4549](https://github.com/apache/apisix/pull/4549) +- :sunrise: 允许给 upstream 指定单独的连接池 [#4506](https://github.com/apache/apisix/pull/4506) +- :sunrise: etcd 连接开启健康检查 [#4191](https://github.com/apache/apisix/pull/4191) + +### Plugin + +- :sunrise: 增加 gzip 插件 [#4640](https://github.com/apache/apisix/pull/4640) +- :sunrise: 增加 ua-restriction 插件来拒绝爬虫请求 [#4587](https://github.com/apache/apisix/pull/4587) +- :sunrise: stream 模块增加 ip-restriction 插件 [#4602](https://github.com/apache/apisix/pull/4602) +- :sunrise: stream 模块增加 limit-conn 插件 [#4515](https://github.com/apache/apisix/pull/4515) +- :sunrise: 将 ext-plugin 的超时提升到 60s [#4557](https://github.com/apache/apisix/pull/4557) +- :sunrise: key-auth 支持从 query string 中获取 key [#4490](https://github.com/apache/apisix/pull/4490) +- :sunrise: kafka-logger 支持通过 admin API 设置日志格式 [#4483](https://github.com/apache/apisix/pull/4483) + +### Bugfix + +- 修复 stream proxy 的 SNI router 在 session 复用中不可用的问题 [#4607](https://github.com/apache/apisix/pull/4607) +- 修复 limit-conn 同时在全局和 route 中指定会出错的问题 [#4585](https://github.com/apache/apisix/pull/4585) +- 修复 Admin API 中检查 proto 引用关系的错误 [#4575](https://github.com/apache/apisix/pull/4575) +- 修复 skywalking 同时在全局和 route 中指定会出错的问题 [#4589](https://github.com/apache/apisix/pull/4589) +- 调用 `ctx.var.cookie_*` 时如果没有找到 cookie 不再报错 [#4564](https://github.com/apache/apisix/pull/4564) +- 修复 request-id 同时在全局和 route 中指定会出错的问题 [#4479](https://github.com/apache/apisix/pull/4479) + ## 2.7.0 +### Change + - 修改 metadata_schema 校验方式,让它跟其他 schema 一致 [#4381](https://github.com/apache/apisix/pull/4381) - 移除 echo 插件的 auth_value 字段 [#4055](https://github.com/apache/apisix/pull/4055) - 更正 Admin API count 字段的计算,并把它的类型变成 integer [#4385](https://github.com/apache/apisix/pull/4385) diff --git a/docs/zh/latest/config.json b/docs/zh/latest/config.json index 524777800336..5ce67a124b67 100644 --- a/docs/zh/latest/config.json +++ b/docs/zh/latest/config.json @@ -1,5 +1,5 @@ { - "version": 2.7, + "version": 2.8, "sidebar": [ { "type": "category", diff --git a/docs/zh/latest/how-to-build.md b/docs/zh/latest/how-to-build.md index d7b938aed2cc..f599942e08b3 100644 --- a/docs/zh/latest/how-to-build.md +++ b/docs/zh/latest/how-to-build.md @@ -36,7 +36,7 @@ Apache APISIX 的运行环境需要依赖 NGINX 和 etcd,所以在安装 Apach 这种安装方式适用于 CentOS 7 操作系统,请运行以下命令安装 Apache APISIX。 ```shell -sudo yum install -y https://github.com/apache/apisix/releases/download/2.7/apisix-2.7-0.x86_64.rpm +sudo yum install -y https://github.com/apache/apisix/releases/download/2.8/apisix-2.8-0.x86_64.rpm ``` ### 通过 Docker 安装 @@ -49,16 +49,16 @@ sudo yum install -y https://github.com/apache/apisix/releases/download/2.7/apisi ### 通过源码包安装 -1. 创建一个名为 `apisix-2.7` 的目录。 +1. 创建一个名为 `apisix-2.8` 的目录。 ```shell - mkdir apisix-2.7 + mkdir apisix-2.8 ``` 2. 下载 Apache APISIX Release 源码包: ```shell - wget https://downloads.apache.org/apisix/2.7/apache-apisix-2.7-src.tgz + wget https://downloads.apache.org/apisix/2.8/apache-apisix-2.8-src.tgz ``` 您也可以通过 Apache APISIX 官网下载 Apache APISIX Release 源码包。 Apache APISIX 官网也提供了 Apache APISIX、APISIX Dashboard 和 APISIX Ingress Controller 的源码包,详情请参考[Apache APISIX 官网-下载页](https://apisix.apache.org/zh/downloads)。 @@ -66,14 +66,14 @@ sudo yum install -y https://github.com/apache/apisix/releases/download/2.7/apisi 3. 解压 Apache APISIX Release 源码包: ```shell - tar zxvf apache-apisix-2.7-src.tgz -C apisix-2.7 + tar zxvf apache-apisix-2.8-src.tgz -C apisix-2.8 ``` 4. 安装运行时依赖的 Lua 库: ```shell - # 切换到 apisix-2.7 目录 - cd apisix-2.7 + # 切换到 apisix-2.8 目录 + cd apisix-2.8 # 创建依赖 make deps ``` diff --git a/rockspec/apisix-2.8-0.rockspec b/rockspec/apisix-2.8-0.rockspec new file mode 100644 index 000000000000..d323e600354c --- /dev/null +++ b/rockspec/apisix-2.8-0.rockspec @@ -0,0 +1,91 @@ +-- +-- Licensed to the Apache Software Foundation (ASF) under one or more +-- contributor license agreements. See the NOTICE file distributed with +-- this work for additional information regarding copyright ownership. +-- The ASF licenses this file to You under the Apache License, Version 2.0 +-- (the "License"); you may not use this file except in compliance with +-- the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + +package = "apisix" +version = "2.8-0" +supported_platforms = {"linux", "macosx"} + +source = { + url = "git://github.com/apache/apisix", + branch = "2.8", +} + +description = { + summary = "Apache APISIX is a cloud-native microservices API gateway, delivering the ultimate performance, security, open source and scalable platform for all your APIs and microservices.", + homepage = "https://github.com/apache/apisix", + license = "Apache License 2.0", +} + +dependencies = { + "lua-resty-ctxdump = 0.1-0", + "lua-resty-dns-client = 5.2.0", + "lua-resty-template = 2.0", + "lua-resty-etcd = 1.5.3", + "lua-resty-balancer = 0.02rc5", + "lua-resty-ngxvar = 0.5.2", + "lua-resty-jit-uuid = 0.0.7", + "lua-resty-healthcheck-api7 = 2.2.0", + "lua-resty-jwt = 0.2.0", + "lua-resty-hmac-ffi = 0.05", + "lua-resty-cookie = 0.1.0", + "lua-resty-session = 2.24", + "opentracing-openresty = 0.1", + "lua-resty-radixtree = 2.8.1", + "lua-protobuf = 0.3.2", + "lua-resty-openidc = 1.7.2-1", + "luafilesystem = 1.7.0-2", + "api7-lua-tinyyaml = 0.3.0", + "nginx-lua-prometheus = 0.20210206", + "jsonschema = 0.9.5", + "lua-resty-ipmatcher = 0.6", + "lua-resty-kafka = 0.07", + "lua-resty-logger-socket = 2.0-0", + "skywalking-nginx-lua = 0.4-1", + "base64 = 1.5-2", + "binaryheap = 0.4", + "dkjson = 2.5-2", + "resty-redis-cluster = 1.02-4", + "lua-resty-expr = 1.3.0", + "graphql = 0.0.2", + "argparse = 0.7.1-1", + "luasocket = 3.0rc1-2", + "luasec = 0.9-1", + "lua-resty-consul = 0.3-2", + "penlight = 1.9.2-1", + "ext-plugin-proto = 0.1.1", +} + +build = { + type = "make", + build_variables = { + CFLAGS="$(CFLAGS)", + LIBFLAG="$(LIBFLAG)", + LUA_LIBDIR="$(LUA_LIBDIR)", + LUA_BINDIR="$(LUA_BINDIR)", + LUA_INCDIR="$(LUA_INCDIR)", + LUA="$(LUA)", + OPENSSL_INCDIR="$(OPENSSL_INCDIR)", + OPENSSL_LIBDIR="$(OPENSSL_LIBDIR)", + }, + install_variables = { + INST_PREFIX="$(PREFIX)", + INST_BINDIR="$(BINDIR)", + INST_LIBDIR="$(LIBDIR)", + INST_LUADIR="$(LUADIR)", + INST_CONFDIR="$(CONFDIR)", + }, +}