(apisix-website) branch master updated: docs: Update apisix-support-tongsuo.md (#1817)

2024-08-19 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 456dda41385 docs: Update apisix-support-tongsuo.md (#1817)
456dda41385 is described below

commit 456dda413858ca3176db303b0fa06e512b67c956
Author: 徐瑞东 
AuthorDate: Tue Aug 20 14:49:56 2024 +0800

docs: Update apisix-support-tongsuo.md (#1817)
---
 blog/zh/blog/2022/12/08/apisix-support-tongsuo.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/blog/zh/blog/2022/12/08/apisix-support-tongsuo.md 
b/blog/zh/blog/2022/12/08/apisix-support-tongsuo.md
index d45a6dcf663..6bb575f32e1 100644
--- a/blog/zh/blog/2022/12/08/apisix-support-tongsuo.md
+++ b/blog/zh/blog/2022/12/08/apisix-support-tongsuo.md
@@ -49,6 +49,7 @@ Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载
 * gm-BoringSSL:个人开源项目,在 BoringSSL 上增加国密支持。已有两年未改动。
 * TaSSL:北京江南天安科技有限公司开源的项目。基于 OpenSSL 1.1.1 修改而来。
 * Tongsuo:蚂蚁集团开源的项目。基于 OpenSSL 3.0 修改而来,项目前身是 BabaSSL,现已**改名为铜锁/Tongsuo**。
+
 由于 GMSSL 3.0 并不基于 OpenSSL,即使能保证 API 兼容,也没办法确保能 100% 替换现有 OpenSSL 
的行为,所以被首先排除。其次 gm-BoringSSL 疏于维护,也被排除。
 
 在 TaSSL 和 Tongsuo 之中,我倾向于选择 
[Tongsuo](https://github.com/Tongsuo-Project/Tongsuo)。因为 Tongsuo 
在标准上拥有更强的话语权,比如 RFC 8998(TLS 1.3 中支持 SM 套件)就是由 Tongsuo 的开发者制定的。TaSSL 
则是每出一个版本,就公布一个新的仓库。比如[前一个 版本](https://github.com/jntass/TASSL-1.1.1k),感觉不太靠谱。



(apisix-website) branch master updated: fix: add a new line between brief and introduction (#1803)

2024-06-30 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 04d79afd3b0 fix: add a new line between brief and introduction (#1803)
04d79afd3b0 is described below

commit 04d79afd3b0bdfa7ccd6f406abfb800ffde7668f
Author: Yilin Zeng <36651058+yzen...@users.noreply.github.com>
AuthorDate: Mon Jul 1 13:54:12 2024 +0800

fix: add a new line between brief and introduction (#1803)
---
 blog/en/blog/2024/05/31/monthly-report.md | 1 +
 blog/zh/blog/2024/05/31/monthly-report.md | 1 +
 2 files changed, 2 insertions(+)

diff --git a/blog/en/blog/2024/05/31/monthly-report.md 
b/blog/en/blog/2024/05/31/monthly-report.md
index 60f12b08280..d48bf935316 100644
--- a/blog/en/blog/2024/05/31/monthly-report.md
+++ b/blog/en/blog/2024/05/31/monthly-report.md
@@ -8,6 +8,7 @@ image: 
https://static.apiseven.com/uploads/2024/05/31/cYKGTnFs_may-cover-en.png
 
 > We have recently made some additions and improvements to specific features 
 > within Apache APISIX. These include supporting the hcv namespace in 
 > HashiCorp Vault and allowing setting headers in introspection requests. For 
 > detailed information, please read the monthly report.
 
+
 ## Introduction
 
 From its inception, the Apache APISIX project has embraced the ethos of 
open-source community collaboration, propelling it into the ranks of the most 
active global open-source API gateway projects. The proverbial wisdom of 
'teamwork makes the dream work' rings true in our way and is made possible by 
the collective effort of our community.
diff --git a/blog/zh/blog/2024/05/31/monthly-report.md 
b/blog/zh/blog/2024/05/31/monthly-report.md
index 1b884163a43..910ee4e641f 100644
--- a/blog/zh/blog/2024/05/31/monthly-report.md
+++ b/blog/zh/blog/2024/05/31/monthly-report.md
@@ -7,6 +7,7 @@ image: 
https://static.apiseven.com/uploads/2024/05/31/Z09ywV24_may-cover-cn.png
 ---
 > 最近,我们新增并改进了 Apache APISIX 的部分功能,包含在 HashiCorp Vault 中支持 hcv namespace 和 在 
 > OIDC 插件中允许在自省请求中设置标头。有关更多功能新亮点,请阅读本期月报。
 
+
 ## 导语
 
 Apache APISIX 项目始终秉承着开源社区协作的精神,自问世起便崭露头角,如今已经成为全球最活跃的开源 API 
网关项目之一。正如谚语所言,“众人拾柴火焰高”,这一辉煌成就,得益于整个社区伙伴的协同努力。



(apisix) branch master updated: docs: add Chinese translation for the new jwe-decrypt plugin doc (#10809)

2024-01-11 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 52c368d1d docs: add Chinese translation for the new jwe-decrypt plugin 
doc (#10809)
52c368d1d is described below

commit 52c368d1de02a591521049180ffb93f626ff65fb
Author: baiyun <337531...@qq.com>
AuthorDate: Fri Jan 12 10:42:49 2024 +0800

docs: add Chinese translation for the new jwe-decrypt plugin doc (#10809)

* docs: add Chinese translation for the new jwe-decrypt plugin doc
---
 docs/zh/latest/config.json|   1 +
 docs/zh/latest/plugins/jwe-decrypt.md | 183 ++
 2 files changed, 184 insertions(+)

diff --git a/docs/zh/latest/config.json b/docs/zh/latest/config.json
index 2f8c38525..07e9d3015 100644
--- a/docs/zh/latest/config.json
+++ b/docs/zh/latest/config.json
@@ -91,6 +91,7 @@
 "plugins/wolf-rbac",
 "plugins/key-auth",
 "plugins/jwt-auth",
+"plugins/jwe-decrypt",
 "plugins/basic-auth",
 "plugins/openid-connect",
 "plugins/hmac-auth",
diff --git a/docs/zh/latest/plugins/jwe-decrypt.md 
b/docs/zh/latest/plugins/jwe-decrypt.md
new file mode 100644
index 0..38f39158b
--- /dev/null
+++ b/docs/zh/latest/plugins/jwe-decrypt.md
@@ -0,0 +1,183 @@
+---
+title: jwe-decrypt
+keywords:
+  - Apache APISIX
+  - API 网关
+  - APISIX 插件
+  - JWE Decrypt
+  - jwe-decrypt
+description: 本文档包含了关于 APISIX jwe-decrypt 插件的相关信息。
+---
+
+
+
+## 描述
+
+`jwe-decrypt` 插件,用于解密 APISIX [Service](../terminology/service.md) 或者 
[Route](../terminology/route.md) 请求中的 
[JWE](https://datatracker.ietf.org/doc/html/rfc7516) 授权请求头。
+
+插件增加了一个 `/apisix/plugin/jwe/encrypt` 的内部 API,提供给 JWE 加密使用。解密时,秘钥应该配置在 
[Consumer](../terminology/consumer.md)内。
+
+## 属性
+
+Consumer 配置:
+
+| 名称  | 类型  | 必选项   | 默认值   | 有效值 | 描述 
  |
+|---|-|---|---|-|--|
+| key   | string  | True  |   | | Consumer 的唯一 key 
|
+| secret| string  | True  |   | | 解密密钥。秘钥可以使用 
[Secret](../terminology/secret.md) 资源保存在密钥管理服务中(最小 32 位) |
+| is_base64_encoded | boolean | False | false | | 如果密钥是 Base64 编码,则需要配置为 
`true`|
+
+Route 配置:
+
+| 名称 | 类型  | 必选项   | 默认值   | 描述
 |
+||-|---|---||
+| header | string  | False | authorization | 指定请求头,用于获取加密令牌
 |
+| forward_header | string  | False | authorization | 传递给 Upstream 的请求头名称   
 |
+| strict | boolean | False | true  | 如果为配置为 true,请求中缺失 JWE 
token 则抛出 `403` 异常。如果为 `false`, 在缺失 JWE token 的情况下不会抛出异常 |
+
+## 启用插件
+
+首先,基于 `jwe-decrypt` 插件创建一个 Consumer,并且配置解密密钥:
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"username": "jack",
+"plugins": {
+"jwe-decrypt": {
+"key": "user-key",
+"secret": "key-length-must-be-at-least-32-bytes"
+}
+}
+}'
+```
+
+下一步,基于 `jwe-decrypt` 插件创建一个路由,用于解密 authorization 请求头:
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"methods": ["GET"],
+"uri": "/anything*",
+"plugins": {
+"jwe-decrypt": {}
+},
+"upstream": {
+"type": "roundrobin",
+"nodes": {
+"httpbin.org:80": 1
+}
+}
+}'
+```
+
+### 使用 JWE 加密数据
+
+该插件创建了一个内部的 API `/apisix/plugin/jwe/encrypt` 以使用 JWE 进行加密。要公开它,需要创建一个对应的路由,并启用 
[public-api](public-api.md) 插件:
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/routes/jwenew -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"uri": "/apisix/plugin/jwe/encrypt",
+"plugins": {
+"public-api": {}
+}
+}'
+```
+
+向 API 发送一个请求,将 Consumer 中配置的密钥,以参数的方式传递给 URI,用于加密 payload 中的一些数据。
+
+```shell
+curl -G --data-urlencode 'payload={"uid":1,"uname":

(apisix) branch master updated: docs: Fix some errors in Chinese document preallocation table (#10768)

2024-01-06 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 1a34a29af docs: Fix some errors in Chinese document preallocation 
table (#10768)
1a34a29af is described below

commit 1a34a29af57213b529e94a2c9962650b776ff954
Author: baiyun <337531...@qq.com>
AuthorDate: Sun Jan 7 08:20:34 2024 +0800

docs: Fix some errors in Chinese document preallocation table (#10768)
---
 docs/zh/latest/CODE_STYLE.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/zh/latest/CODE_STYLE.md b/docs/zh/latest/CODE_STYLE.md
index fcd4f8a98..56cbe0e0b 100644
--- a/docs/zh/latest/CODE_STYLE.md
+++ b/docs/zh/latest/CODE_STYLE.md
@@ -268,7 +268,7 @@ end
 ```lua
 --Yes
 local new_tab = require "table.new"
-local t = new_tab(100, 0)
+local t = new_tab(10, 0)
 for i = 1, 10 do
 t[i] = "a"
 end



(apisix) branch master updated: docs: remove duplicate sentences in admin-api.md (#10761)

2024-01-05 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 65ddb3a57 docs: remove duplicate sentences in admin-api.md (#10761)
65ddb3a57 is described below

commit 65ddb3a579e3165777d9ddb23c7139741e9b73c2
Author: Ruidong-X 
AuthorDate: Sat Jan 6 08:08:24 2024 +0800

docs: remove duplicate sentences in admin-api.md (#10761)
---
 docs/zh/latest/admin-api.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/zh/latest/admin-api.md b/docs/zh/latest/admin-api.md
index 60be95ec8..46c3d6052 100644
--- a/docs/zh/latest/admin-api.md
+++ b/docs/zh/latest/admin-api.md
@@ -1400,7 +1400,7 @@ Plugin 资源请求地址:/apisix/admin/plugins/{plugin_name}
 
 你可以使用 `/apisix/admin/plugins?all=true` 接口获取所有插件的所有属性,每个插件包括 
`name`,`priority`,`type`,`schema`,`consumer_schema` 和 `version`。
 
-您可以使用“/apisix/admin/plugins?all=true”获取所有插件的所有属性。这个 API 将很快被弃用
+这个 API 将很快被弃用。
 
 :::
 



(apisix) branch master updated: docs: update proxy-rewrite docs (#9025)

2023-12-13 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 11344d2b2 docs: update proxy-rewrite docs (#9025)
11344d2b2 is described below

commit 11344d2b2fc0274b89611cc7a1a2553af9d42ee1
Author: jack 
AuthorDate: Thu Dec 14 08:57:34 2023 +0800

docs: update proxy-rewrite docs (#9025)

Co-authored-by: Traky Deng 
---
 docs/zh/latest/plugins/proxy-rewrite.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/docs/zh/latest/plugins/proxy-rewrite.md 
b/docs/zh/latest/plugins/proxy-rewrite.md
index 1b5de57d2..e8b96b186 100644
--- a/docs/zh/latest/plugins/proxy-rewrite.md
+++ b/docs/zh/latest/plugins/proxy-rewrite.md
@@ -43,7 +43,8 @@ description: 本文介绍了关于 Apache APISIX `proxy-rewrite` 插件的基本
 | headers   | object| 否| |   |   |
 | headers.add | object   | 否 || | 
添加新的请求头,如果头已经存在,会追加到末尾。格式为 `{"name": "value", ...}`。这个值能够以 `$var` 的格式包含 NGINX 
变量,比如 `$remote_addr $balancer_ip`。也支持以变量的形式引用 `regex_uri` 的匹配结果,比如 `$1-$2-$3`。  

|
 | headers.set | object  | 否 || | 
改写请求头,如果请求头不存在,则会添加这个请求头。格式为 `{"name": "value", ...}`。这个值能够以 `$var` 的格式包含 NGINX 
变量,比如 `$remote_addr $balancer_ip`。也支持以变量的形式引用 `regex_uri` 的匹配结果,比如 `$1-$2-$3`。  

 |
-| headers.remove  | array   | 否 || | 移除响应头。格式为 
`["name", ...]`。
+| headers.remove  | array   | 否 || | 移除请求头。格式为 
`["name", ...]`。|
+| use_real_request_uri_unsafe | boolean   | 否 | false |
 | 使用 real_request_uri(nginx 中的原始 $request_uri)绕过 URI 规范化。启用它被认为是不安全的,因为它会绕过所有 
URI 规范化步骤。|
 
 ## Header 优先级
 



(apisix-website) branch master updated: blog: add release notes for v3.7.0 (#1728)

2023-11-19 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 755696240be blog: add release notes for v3.7.0 (#1728)
755696240be is described below

commit 755696240be4abc1ed0f4ce0d7637b8283f77613
Author: Traky Deng 
AuthorDate: Sun Nov 19 17:59:11 2023 -0800

blog: add release notes for v3.7.0 (#1728)

* add release notes

* Add transaltion

* replace avatar links

-

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>
---
 .../blog/2023/11/20/release-apache-apisix-3.7.0.md | 90 +
 .../blog/2023/11/20/release-apache-apisix-3.7.0.md | 92 ++
 2 files changed, 182 insertions(+)

diff --git a/blog/en/blog/2023/11/20/release-apache-apisix-3.7.0.md 
b/blog/en/blog/2023/11/20/release-apache-apisix-3.7.0.md
new file mode 100644
index 000..b67f4673b8f
--- /dev/null
+++ b/blog/en/blog/2023/11/20/release-apache-apisix-3.7.0.md
@@ -0,0 +1,90 @@
+---
+title: "Release Apache APISIX 3.7.0"
+authors:
+  - name: "Xin Rong"
+title: "Author"
+url: "https://github.com/AlinsRan";
+image_url: "https://github.com/AlinsRan.png";
+  - name: "Traky Deng"
+title: "Technical Writer"
+url: "https://github.com/kayx23";
+image_url: "https://github.com/kayx23.png";
+keywords:
+- Apache APISIX
+- API Gateway
+- API Management Platform
+- New Release
+- Cloud Native
+description: The Apache APISIX 3.7.0 version is released on November 20, 2023. 
This release includes a few breaking changes, new features, and bug fixes.
+tags: [Community]
+---
+
+We are glad to present Apache APISIX 3.7.0 with exciting new features, bug 
fixes, and other improvements to user experiences.
+
+
+
+This new release adds a number of new features, including the support for ACL 
tokens for Consul service discovery, authorization parameters in 
`openid-connect` plugin, Nacos AK/SK authentication, and more.
+
+There are also a few important changes included in this release. Should you 
find these changes impacting your operations, please plan your upgrade 
accordingly.
+
+## Breaking Changes
+
+### Restrict modification to create time and update time of core resources
+
+In the earlier versions, modifying resources' `create_time` and `update_time` 
was unrestricted with Admin API. This behaviour is unneeded and prone to risks. 
Starting from 3.7.0, users would not be allowed to modify these timestamps.
+
+For more information, see [change 
proposal](https://lists.apache.org/thread/968kp7hd6zcg7ty2clomkbshmd53v71d) and 
[PR #10232](https://github.com/apache/apisix/pull/10232).
+
+### Remove `exptime`, `validity_start`, and `validity_end` attributes from SSL 
schema
+
+Remove `exptime`, `validity_start`, and `validity_end` attributes from SSL 
schema as these information are present in the certificate.
+
+For more information, see [change 
proposal](https://lists.apache.org/thread/8l4h8f6wcv482s0b7vt17do5z3g1y3o3) and 
[PR #10323](https://github.com/apache/apisix/pull/10323).
+
+### Update `opentelemetry` plugin attributes to beter follow the specifications
+
+Replace attributes `route` with `apisix.route_name`, `service` with 
`apisix.service_name` in the `opentelemetry` plugin to follow the OpenTelemetry 
specifications for span name. For more information, see [PR 
#10393](https://github.com/apache/apisix/pull/10393).
+
+## New Features
+
+### Support ACL tokens for Consul discovery
+
+Support for ACL tokens when using Consul or Consul KV service discovery. For 
more information, see [PR #10278](https://github.com/apache/apisix/pull/10278).
+
+### Support configuring services for stream routes
+
+Support referencing services in stream routes to configure upstreams. For more 
information, see [PR #10298](https://github.com/apache/apisix/pull/10298).
+
+### Support authorization parameters in `openid-connect` plugin
+
+Support additional authorization parameters in the `authorization_params` 
attribute of the `openid-connect` plugin. For more information, see [PR 
#10588](https://github.com/apache/apisix/pull/10588).
+
+### Support setting variables in `zipkin` plugin
+
+Support setting variables in zipkin plugin to expose the span information 
during the rewrite phase. For more information, see 
[documentation](https://github.com/wizhuo/apisix/blob/master/docs/en/latest/plugins/zipkin.md#variables)
 and [PR #10361](https://github.com/apache/apisix/pull/10361).
+
+### Support Nacos AK/SK authentication
+
+Support Nacos AK/SK authentication. The access key and secret key can be 
configured in the configuration file as follows:
+
+```yaml title="config.yaml"
+discovery:
+  nacos:
+...
+access_key: ""

(apisix) branch master updated: docs: update link to service terminology (#10508)

2023-11-16 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 487abf954 docs: update link to service terminology (#10508)
487abf954 is described below

commit 487abf9543a86a9c40c339ae23564dc880d3cc24
Author: osorionicolas 
AuthorDate: Fri Nov 17 01:00:59 2023 +0100

docs: update link to service terminology (#10508)
---
 docs/en/latest/terminology/upstream.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/en/latest/terminology/upstream.md 
b/docs/en/latest/terminology/upstream.md
index 923effbf1..c0cda0708 100644
--- a/docs/en/latest/terminology/upstream.md
+++ b/docs/en/latest/terminology/upstream.md
@@ -31,7 +31,7 @@ description: This article describes the role of the Apache 
APISIX Upstream objec
 
 Upstream is a virtual host abstraction that performs load balancing on a given 
set of service nodes according to the configured rules.
 
-Although Upstream can be directly configured to the [Route](./route.md) or 
[Service](./route.md), using an Upstream object is recommended when there is 
duplication as shown below.
+Although Upstream can be directly configured to the [Route](./route.md) or 
[Service](./service.md), using an Upstream object is recommended when there is 
duplication as shown below.
 
 ![upstream-example](../../../assets/images/upstream-example.png)
 



(apisix) branch master updated: change router to route (#10463)

2023-11-09 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 2696bc5d4 change router to route (#10463)
2696bc5d4 is described below

commit 2696bc5d4c60f8b873902a124c93ebb56987fe4f
Author: Traky Deng 
AuthorDate: Thu Nov 9 16:17:44 2023 -0800

change router to route (#10463)
---
 docs/en/latest/deployment-modes.md | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/docs/en/latest/deployment-modes.md 
b/docs/en/latest/deployment-modes.md
index bc195121c..edf705a89 100644
--- a/docs/en/latest/deployment-modes.md
+++ b/docs/en/latest/deployment-modes.md
@@ -151,9 +151,9 @@ routes:
 
 *WARNING*: APISIX will not load the rules into memory from file 
`conf/apisix.yaml` if there is no `#END` at the end.
 
-### How to configure Router
+### How to configure Route
 
-Single Router:
+Single Route:
 
 ```yaml
 routes:
@@ -166,7 +166,7 @@ routes:
 #END
 ```
 
-Multiple Router:
+Multiple Routes:
 
 ```yaml
 routes:
@@ -185,7 +185,7 @@ routes:
 #END
 ```
 
-### How to configure Router + Service
+### How to configure Route + Service
 
 ```yml
 routes:
@@ -202,7 +202,7 @@ services:
 #END
 ```
 
-### How to configure Router + Upstream
+### How to configure Route + Upstream
 
 ```yml
 routes:
@@ -218,7 +218,7 @@ upstreams:
 #END
 ```
 
-### How to configure Router + Service + Upstream
+### How to configure Route + Service + Upstream
 
 ```yml
 routes:



(apisix) branch master updated: docs: update the mysql docker example in stream proxy to use mysql_native_password (#10439)

2023-11-05 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 2e83f91d0 docs: update the mysql docker example in stream proxy to use 
mysql_native_password (#10439)
2e83f91d0 is described below

commit 2e83f91d0798ae1ed77032d14e4a383d2e253418
Author: Traky Deng 
AuthorDate: Sun Nov 5 17:27:15 2023 -0800

docs: update the mysql docker example in stream proxy to use 
mysql_native_password (#10439)

* Update mysql docker example to use mysql_native_password

* update the same for the zh doc
---
 docs/en/latest/stream-proxy.md | 2 +-
 docs/zh/latest/stream-proxy.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/en/latest/stream-proxy.md b/docs/en/latest/stream-proxy.md
index 9354c96b2..937a1a5af 100644
--- a/docs/en/latest/stream-proxy.md
+++ b/docs/en/latest/stream-proxy.md
@@ -115,7 +115,7 @@ Here is an example with MySQL:
 2. Now run a mysql docker container and expose port 3306 to the host
 
```shell
-   $ docker run --name mysql -e MYSQL_ROOT_PASSWORD=toor -p 3306:3306 -d mysql
+   $ docker run --name mysql -e MYSQL_ROOT_PASSWORD=toor -p 3306:3306 -d mysql 
mysqld --default-authentication-plugin=mysql_native_password
# check it using a mysql client that it works
$ mysql --host=127.0.0.1 --port=3306 -u root -p
Enter password:
diff --git a/docs/zh/latest/stream-proxy.md b/docs/zh/latest/stream-proxy.md
index 22a17be6c..1c2a37c42 100644
--- a/docs/zh/latest/stream-proxy.md
+++ b/docs/zh/latest/stream-proxy.md
@@ -101,7 +101,7 @@ curl http://127.0.0.1:9180/apisix/admin/stream_routes/1 -H 
'X-API-KEY: edd1c9f03
 2. 现在运行一个 mysql docker 容器并将端口 3306 暴露给主机
 
```shell
-   $ docker run --name mysql -e MYSQL_ROOT_PASSWORD=toor -p 3306:3306 -d mysql
+   $ docker run --name mysql -e MYSQL_ROOT_PASSWORD=toor -p 3306:3306 -d mysql 
mysqld --default-authentication-plugin=mysql_native_password
# check it using a mysql client that it works
$ mysql --host=127.0.0.1 --port=3306 -u root -p
Enter password:



[apisix-website] branch master updated: docs: Update building-apisix-in-ubuntu-for-arm.md (#1715)

2023-10-26 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new f94fcac9f45 docs: Update building-apisix-in-ubuntu-for-arm.md (#1715)
f94fcac9f45 is described below

commit f94fcac9f45481cbc535f68a22de23aab4f7c17a
Author: allen 
AuthorDate: Thu Oct 26 15:35:31 2023 +0800

docs: Update building-apisix-in-ubuntu-for-arm.md (#1715)

 docs: fix the ```:::info``` doesn't work, the text was hidden
---
 blog/en/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md | 2 +-
 blog/zh/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/blog/en/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md 
b/blog/en/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md
index f4180e5dd14..58007150f35 100644
--- a/blog/en/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md
+++ b/blog/en/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md
@@ -150,7 +150,7 @@ make install
 
 Before starting Apache APISIX you need to install etcd, more details can refer 
to the [official 
documentation](https://apisix.apache.org/docs/apisix/2.10/install-dependencies/#ubuntu-1604--1804).
 
-:::info
+:::note
 Because the installation tutorial was not written for arm, although etcd, was 
successfully installed, etcd could not be run successfully due to the default 
use of x86 binaries. The specific part of stepping on the pit will not be 
repeated here, but will directly put the correct steps for your reference.
 :::
 
diff --git a/blog/zh/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md 
b/blog/zh/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md
index c344d85a58a..09a21439233 100644
--- a/blog/zh/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md
+++ b/blog/zh/blog/2022/01/11/building-apisix-in-ubuntu-for-arm.md
@@ -150,7 +150,7 @@ make install
 
 启动 Apache APISIX 之前需要先安装 
etcd,具体安装步骤可参考[官方文档](https://apisix.apache.org/docs/apisix/2.10/install-dependencies/#ubuntu-1604--1804)
 
-:::info 提示
+:::note
 由于该安装教程并不是针对 arm 写的,虽然成功安装了 etcd,但未能成功将 etcd 运行起来,原因是由于默认使用 x86 
的二进制文件导致。具体踩坑部分这里就不再赘述,直接放上正确步骤供大家参考。
 :::
 



[apisix-website] branch master updated: docs: add ingress-apisix.md (#1713)

2023-10-24 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 6d9f4131bb8 docs: add ingress-apisix.md (#1713)
6d9f4131bb8 is described below

commit 6d9f4131bb86652d3e271235bc670fca89db533f
Author: Yilia <114121331+yilial...@users.noreply.github.com>
AuthorDate: Wed Oct 25 09:17:28 2023 +0800

docs: add ingress-apisix.md (#1713)

* docs: add ingress-apisix.md

* Update ingress-apisix.md
---
 blog/en/blog/2023/10/18/ingress-apisix.md | 212 ++
 blog/zh/blog/2023/10/18/ingress-apisix.md |  44 ---
 2 files changed, 236 insertions(+), 20 deletions(-)

diff --git a/blog/en/blog/2023/10/18/ingress-apisix.md 
b/blog/en/blog/2023/10/18/ingress-apisix.md
new file mode 100644
index 000..c9a33a7e2b9
--- /dev/null
+++ b/blog/en/blog/2023/10/18/ingress-apisix.md
@@ -0,0 +1,212 @@
+---
+title: "Embrace the Lightweight APISIX Ingress Controller Without etcd 
Dependency"
+authors:
+  - name: "Xin Rong"
+title: "Author"
+url: "https://github.com/AlinsRan";
+image_url: "https://github.com/AlinsRan.png";
+  - name: "Yilia Lin"
+title: "Technical Writer"
+url: "https://github.com/Yilialinn";
+image_url: "https://avatars.githubusercontent.com/u/114121331?v=4";
+keywords: 
+- Apache APISIX
+- APISIX Ingress Controller
+- etcd
+description: The innovative architecture of the APISIX Ingress Controller 
eliminates the dependency on a standalone etcd cluster, greatly simplifying 
maintenance costs and system complexity.
+tags: [Community]
+image: https://static.apiseven.com/2022/10/19/634f6677742a1.png
+---
+
+> The innovative architecture of the APISIX Ingress Controller eliminates the 
dependency on a standalone etcd cluster, greatly simplifying maintenance costs 
and system complexity.
+
+
+## Background
+
+APISIX Ingress Controller is a Kubernetes Ingress Controller based on Apache 
APISIX. It has the capability to convert Ingress/CRDs resources from Kubernetes 
into routing rules for Apache APISIX, synchronizing them with the Apache APISIX 
cluster. As a result, users can harness the robust functionalities of Apache 
APISIX, including plugins, load balancing, health checks, and more, for the 
management of inbound traffic in Kubernetes.
+
+![APISIX Ingress Controller 
Architecture](https://static.apiseven.com/uploads/2023/10/24/aezup4a9_APISIX-Ingress-1.png)
+
+![Architecture of APISIX Ingress Controller with Gateway 
API](https://static.apiseven.com/uploads/2023/10/24/ZtjVM6dH_APISIX-Ingress-2.png)
+
+In previous versions, deploying an APISIX Ingress Controller cluster 
necessitated the additional maintenance of a highly available etcd cluster. In 
practice, it proved to be less user-friendly and posed several challenges:
+
+1. **High Maintenance Costs for the etcd Cluster**: Setting up a highly 
available cluster involves significant learning and maintenance costs, 
including system resource consumption like memory. Deploying an etcd cluster in 
Kubernetes requires careful attention to various factors, often leading to 
challenges for those unfamiliar with etcd, and necessitating concerns about 
memory and other system resource consumption.
+
+2. **High Utilization Costs**: Deploying an APISIX Ingress Controller cluster 
entails three components. Compared to a single-component ingress-nginx, the 
APISIX Ingress Controller demands higher learning and debugging costs. It is 
notably less straightforward to use, presenting an additional burden for 
first-time users.
+
+3. **Data Redundancy and Inconsistency**: Both Kubernetes etcd and APISIX etcd 
clusters retain a copy of the data. During usage, efforts are often needed to 
prevent discrepancies between the two datasets. Due to APISIX and the Ingress 
controller being decoupled, addressing and mitigating such situations becomes 
challenging.
+
+4. **Obstacles in Implementing Gateway API**: The Gateway API dynamically 
manages the full lifecycle of a set of Gateways (APISIX).  Because APISIX 
configuration primarily stems from etcd, the Ingress Controller must 
simultaneously monitor the etcd clusters and APISIX, which makes maintenance 
and management very complicated.
+
+In the overall architecture, Apache APISIX does not rely on the Ingress 
Controller. The Ingress Controller performs the role of pushing configuration 
but lacks the ability to manage APISIX effectively. These issues are 
challenging to address within the existing architecture. **To tackle these 
challenges and provide solutions, a new APISIX Ingress Controller architecture 
needs to be designed.**
+
+## Design of New Architecture
+
+To address the issues in the existing architecture, it is necessary to remove 
the etcd component. C

[apisix] branch SylviaBABY-patch-1 deleted (was 4c386e0bd)

2023-10-18 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


 was 4c386e0bd docs: Update APISIX usecases in README

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[apisix] branch master updated: docs: Update APISIX usecases in README (#10358)

2023-10-18 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 796cfffc7 docs: Update APISIX usecases in README (#10358)
796cfffc7 is described below

commit 796cfffc7e670b6ede23a7a74368063d69127b99
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Wed Oct 18 22:48:18 2023 -0500

docs: Update APISIX usecases in README (#10358)
---
 README.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/README.md b/README.md
index 9d304c5fe..46e630743 100644
--- a/README.md
+++ b/README.md
@@ -217,6 +217,7 @@ A wide variety of companies and organizations use APISIX 
API Gateway for researc
 - HONOR
 - Horizon Robotics
 - iQIYI
+- Lenovo
 - NASA JPL
 - Nayuki
 - OPPO
@@ -226,6 +227,7 @@ A wide variety of companies and organizations use APISIX 
API Gateway for researc
 - Travelsky
 - vivo
 - Sina Weibo
+- WeCity
 - WPS
 - XPENG
 - Zoom



[apisix] 01/01: docs: Update APISIX usecases in README

2023-10-18 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git

commit 4c386e0bd9e95073ceb7d5b1bbb2922e4374d4ab
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Wed Oct 18 21:09:06 2023 -0500

docs: Update APISIX usecases in README
---
 README.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/README.md b/README.md
index 9d304c5fe..46e630743 100644
--- a/README.md
+++ b/README.md
@@ -217,6 +217,7 @@ A wide variety of companies and organizations use APISIX 
API Gateway for researc
 - HONOR
 - Horizon Robotics
 - iQIYI
+- Lenovo
 - NASA JPL
 - Nayuki
 - OPPO
@@ -226,6 +227,7 @@ A wide variety of companies and organizations use APISIX 
API Gateway for researc
 - Travelsky
 - vivo
 - Sina Weibo
+- WeCity
 - WPS
 - XPENG
 - Zoom



[apisix] branch SylviaBABY-patch-1 created (now 4c386e0bd)

2023-10-18 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


  at 4c386e0bd docs: Update APISIX usecases in README

This branch includes the following new commits:

 new 4c386e0bd docs: Update APISIX usecases in README

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[apisix-website] branch master updated: docs: add apisix-gitops-adc.md (#1703)

2023-10-09 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 29ef192e1c3 docs: add apisix-gitops-adc.md (#1703)
29ef192e1c3 is described below

commit 29ef192e1c38cfb37e1d7d8c2e598cb2145cac42
Author: Yilia <114121331+yilial...@users.noreply.github.com>
AuthorDate: Tue Oct 10 14:15:56 2023 +0800

docs: add apisix-gitops-adc.md (#1703)

* docs: add apisix-gitops-adc.md

* Update apisix-gitops-adc.md

New feature of APISIX: GitOps

* Update blog/zh/blog/2023/10/07/apisix-gitops-adc.md

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>

* Update blog/zh/blog/2023/10/07/apisix-gitops-adc.md

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>

* Update blog/zh/blog/2023/10/07/apisix-gitops-adc.md

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>

* Update blog/zh/blog/2023/10/07/apisix-gitops-adc.md

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>

* Update apisix-gitops-adc.md

* Update apisix-gitops-adc.md

* Update apisix-gitops-adc.md

* add apisix-gitops-ad (en)

* Update apisix-gitops-adc.md

* Update apisix-gitops-adc.md

* Update blog/zh/blog/2023/10/07/apisix-gitops-adc.md

Co-authored-by: Jing Yan <106428961+jya...@users.noreply.github.com>

* Update blog/zh/blog/2023/10/07/apisix-gitops-adc.md

Co-authored-by: Jing Yan <106428961+jya...@users.noreply.github.com>

* Update blog/en/blog/2023/10/08/apisix-gitops-adc.md

Co-authored-by: Jing Yan <106428961+jya...@users.noreply.github.com>

* Update blog/zh/blog/2023/10/07/apisix-gitops-adc.md

Co-authored-by: Jing Yan <106428961+jya...@users.noreply.github.com>

* Update blog/en/blog/2023/10/08/apisix-gitops-adc.md

Co-authored-by: Jing Yan <106428961+jya...@users.noreply.github.com>

* Update blog/en/blog/2023/10/08/apisix-gitops-adc.md

Co-authored-by: Jing Yan <106428961+jya...@users.noreply.github.com>

* Update blog/en/blog/2023/10/08/apisix-gitops-adc.md

Co-authored-by: Jing Yan <106428961+jya...@users.noreply.github.com>

* Fix lint

* Fix lint

* Update apisix-gitops-adc.md

* Update apisix-gitops-adc.md

* Update apisix-gitops-adc.md

* Update keywords

-

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>
Co-authored-by: Jing Yan <106428961+jya...@users.noreply.github.com>
---
 blog/en/blog/2023/10/07/apisix-gitops-adc.md | 324 +++
 blog/zh/blog/2023/10/07/apisix-gitops-adc.md | 322 ++
 2 files changed, 646 insertions(+)

diff --git a/blog/en/blog/2023/10/07/apisix-gitops-adc.md 
b/blog/en/blog/2023/10/07/apisix-gitops-adc.md
new file mode 100644
index 000..4472d8684d3
--- /dev/null
+++ b/blog/en/blog/2023/10/07/apisix-gitops-adc.md
@@ -0,0 +1,324 @@
+---
+title: "Embracing GitOps: APISIX's New Feature for Declarative Configuration"
+authors:
+  - name: Jintao Zhang
+title: Author
+url: https://github.com/tao12345666333
+image_url: https://avatars.githubusercontent.com/u/3264292?v=4
+  - name: Yilia Lin
+title: Technical Writer
+url: https://github.com/Yilialinn
+image_url: https://avatars.githubusercontent.com/u/114121331?v=4
+keywords:
+  - Open Source
+  - API Gateway
+  - Apache APISIX
+description: APISIX strengthens its integration with modern development and 
operational workflows by introducing the declarative configuration tool, ADC.
+tags: [Community]
+image: https://static.apiseven.com/2022/10/19/634f6677742a1.png
+---
+
+APISIX strengthens its integration with modern development and operational 
workflows by introducing the declarative configuration tool, ADC.
+
+
+With the widespread adoption of cloud-native and microservices, the API 
gateway has emerged as a critical component for connecting and managing various 
microservices. However, as the number of services continues to grow and changes 
occur more frequently, the traditional imperative configuration has become 
increasingly challenging to manage and maintain. GitOps, on the other hand, is 
an operational model that leverages version control systems and automated 
workflows. By supporting declara [...]
+
+To enhance developing efficiency and operational reliability, APISIX has 
introduced a new tool that supports GitOps in a declarative manner. By 
embracing the declarative nature of GitOps, APISIX strengthens its integration 
with modern development and operational workflows. 

[apisix-website] branch master updated: Update biweekly-report.md (#1696)

2023-09-27 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new d07ecdfd3c3 Update biweekly-report.md (#1696)
d07ecdfd3c3 is described below

commit d07ecdfd3c3ac9b3f0eeb490e1b3095cd4f2ccfe
Author: Jing Yan <106428961+jya...@users.noreply.github.com>
AuthorDate: Thu Sep 28 13:51:00 2023 +0800

Update biweekly-report.md (#1696)

Replace the wrong image.
---
 blog/zh/blog/2023/09/13/biweekly-report.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/blog/zh/blog/2023/09/13/biweekly-report.md 
b/blog/zh/blog/2023/09/13/biweekly-report.md
index 26073ea4502..fa5d9ab21f2 100644
--- a/blog/zh/blog/2023/09/13/biweekly-report.md
+++ b/blog/zh/blog/2023/09/13/biweekly-report.md
@@ -32,9 +32,9 @@ Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界
 
 ## 贡献者统计
 
-![贡献者名单](https://static.apiseven.com/uploads/2023/09/13/RsJ7HQdQ_contributors-0913.png)
+![贡献者名单](https://static.apiseven.com/uploads/2023/09/26/afJdz8VA_Group%204.png)
 
-![新晋贡献者](https://static.apiseven.com/uploads/2023/09/13/DajeA6zN_new-contributors-0911.jpg)
+![新晋贡献者](https://static.apiseven.com/uploads/2023/09/26/KLSzp6dh_0910.png)
 
 ## 近期亮点功能
 



[apisix-website] branch master updated: Update biweekly-report.md (#1695)

2023-09-27 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 05a28ed9975 Update biweekly-report.md (#1695)
05a28ed9975 is described below

commit 05a28ed99754c571b6f6715b41452e4dbad6138c
Author: Jing Yan <106428961+jya...@users.noreply.github.com>
AuthorDate: Thu Sep 28 13:50:30 2023 +0800

Update biweekly-report.md (#1695)

replace the wrong image.
---
 blog/en/blog/2023/09/13/biweekly-report.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/blog/en/blog/2023/09/13/biweekly-report.md 
b/blog/en/blog/2023/09/13/biweekly-report.md
index 9173e0070bb..9b44130c7c4 100644
--- a/blog/en/blog/2023/09/13/biweekly-report.md
+++ b/blog/en/blog/2023/09/13/biweekly-report.md
@@ -32,9 +32,9 @@ We have recently fixed and improved some features, and the 
summary of the update
 
 ## Contributor Statistics
 
-![Apache APISIX Contributors 
List](https://static.apiseven.com/uploads/2023/09/13/RsJ7HQdQ_contributors-0913.png)
+![Apache APISIX Contributors 
List](https://static.apiseven.com/uploads/2023/09/26/afJdz8VA_Group%204.png)
 
-![Apache APISIX New 
Contributors](https://static.apiseven.com/uploads/2023/09/13/DajeA6zN_new-contributors-0911.jpg)
+![Apache APISIX New 
Contributors](https://static.apiseven.com/uploads/2023/09/26/KLSzp6dh_0910.png)
 
 ## Highlights of Recent Features
 



[apisix-website] branch master updated: docs: update documentation-guide.md (#1679)

2023-09-12 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 8fba5754cd0 docs: update documentation-guide.md (#1679)
8fba5754cd0 is described below

commit 8fba5754cd0fcf8646d21abf23998f3488964110
Author: Ruidong-X 
AuthorDate: Tue Sep 12 16:50:52 2023 +0800

docs: update documentation-guide.md (#1679)
---
 .../zh/docusaurus-plugin-content-docs/current/documentation-guide.md| 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/website/i18n/zh/docusaurus-plugin-content-docs/current/documentation-guide.md 
b/website/i18n/zh/docusaurus-plugin-content-docs/current/documentation-guide.md
index 27b90b8e8c1..879ba2ea3c4 100644
--- 
a/website/i18n/zh/docusaurus-plugin-content-docs/current/documentation-guide.md
+++ 
b/website/i18n/zh/docusaurus-plugin-content-docs/current/documentation-guide.md
@@ -79,7 +79,7 @@ description: Apache APISIX 中文文档的贡献指南,适用于 APISIX 中文
 示例如下:
 
 ```shell
- ::note 注意
+ :::note 注意
 
  为用户提供基于其他内容的额外提示。
 



[apisix-website] branch master updated: blog: add Apache APISIX 3.4.0 release notes (#1629)

2023-07-06 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 061e3c5adce blog: add Apache APISIX 3.4.0 release notes (#1629)
061e3c5adce is described below

commit 061e3c5adcec705a4a2d6ad6f693173e3eef2e22
Author: Traky Deng 
AuthorDate: Fri Jul 7 09:21:43 2023 +0800

blog: add Apache APISIX 3.4.0 release notes (#1629)
---
 .../blog/2023/06/30/release-apache-apisix-3.4.0.md | 114 +
 .../blog/2023/06/30/release-apache-apisix-3.4.0.md | 114 +
 2 files changed, 228 insertions(+)

diff --git a/blog/en/blog/2023/06/30/release-apache-apisix-3.4.0.md 
b/blog/en/blog/2023/06/30/release-apache-apisix-3.4.0.md
new file mode 100644
index 000..4853fff61ee
--- /dev/null
+++ b/blog/en/blog/2023/06/30/release-apache-apisix-3.4.0.md
@@ -0,0 +1,114 @@
+---
+title: "Release Apache APISIX 3.4.0"
+authors:
+  - name: "Xin Rong"
+title: "Author"
+url: "https://github.com/AlinsRan";
+image_url: "https://avatars.githubusercontent.com/u/79972061?v=4";
+  - name: "Traky Deng"
+title: "Technical Writer"
+url: "https://github.com/kayx23";
+image_url: "https://avatars.githubusercontent.com/u/39619599?v=4";
+keywords:
+- Apache APISIX
+- API Gateway
+- API Management Platform
+- New Release
+- Cloud Native
+description: The Apache APISIX 3.4.0 version is released on June 30, 2023. 
This version adds a new plugin for Grafana Loki, allows for mTLS connection on 
the route level, and made performance optimization to continuously enhance the 
user experience of APISIX.
+tags: [Community]
+---
+
+We are pleased to present Apache APISIX 3.4.0 with exciting new features and 
performance improvements.
+
+
+
+This release provides a new plugin `loki-logger` to forward logs to [Grafana 
Loki](https://grafana.com/oss/loki/), and allows for mTLS connection on the 
route level. In addition, the release also includes many other updates to 
continuously enhance the user experience of APISIX.
+
+## New Features
+
+### Support integration with Grafana Loki using the `loki-logger` plugin
+
+The `loki-logger` plugin is used to forward logs to [Grafana 
Loki](https://grafana.com/oss/loki/) for analysis and storage.
+
+When the plugin is enabled, APISIX serializes the request context information 
to [log entries in 
JSON](https://grafana.com/docs/loki/latest/api/#push-log-entries-to-loki) and 
submits it to the batch queue. When the maximum batch size is reached, the data 
in the queue is pushed to Loki.
+
+For example, you can enable the `loki-logger` plugin on a specific route:
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"plugins": {
+"loki-logger": {
+"endpoint_addrs" : ["http://127.0.0.1:3100";]
+}
+},
+"upstream": {
+   "nodes": {
+   "127.0.0.1:1980": 1
+   },
+   "type": "roundrobin"
+},
+"uri": "/hello"
+}'
+```
+
+If successful, APISIX logs should be forwarded to Loki running at 
`http://127.0.0.1:3100`.
+
+For more information about the plugin, see `loki-logger` [plugin 
doc](https://github.com/apache/apisix/blob/release/3.4/docs/en/latest/plugins/loki-logger.md).
+
+PR for this feature could be found here 
[#9399](https://github.com/apache/apisix/pull/9399).
+
+### Support route-level mTLS
+
+Support configuring mTLS on the route level. The Admin API SSL object now has 
a new configuration option, `client.skip_mtls_uri_regex`. Users can specify a 
list of URIs (RegEx supported) in this option, for which the verification of 
the client certificate should be skipped.
+
+For example, you can configure a route-level mTLS such as the following:
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/routes/1 \
+-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"uri": "/*",
+"upstream": {
+"nodes": {
+"httpbin.org": 1
+}
+}
+}'
+```
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/ssls/1 \
+-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"cert": "'"$(path/to/certs/mtls_server.crt)"'",
+"key": "'"$(path/to/certs/mtls_server.key)"'",
+"snis": [
+"*.apisix.dev"
+],
+"client": {
+"ca": "'"$(path/to/certs/mtls_ca.crt)"'",
+"depth": 10,
+"skip_mtls

[apisix] branch master updated: docs: add Secret chinese document to Admin API (#9522)

2023-07-01 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new f2337f25d docs: add Secret chinese document to Admin API (#9522)
f2337f25d is described below

commit f2337f25d4bdbe7291810f36c0fbedd5cea8d29d
Author: 周聪 <76942195+zcc...@users.noreply.github.com>
AuthorDate: Sun Jul 2 08:52:11 2023 +0800

docs: add Secret chinese document to Admin API (#9522)
---
 docs/zh/latest/admin-api.md | 63 +
 1 file changed, 63 insertions(+)

diff --git a/docs/zh/latest/admin-api.md b/docs/zh/latest/admin-api.md
index 72707eee4..ad6e2ff64 100644
--- a/docs/zh/latest/admin-api.md
+++ b/docs/zh/latest/admin-api.md
@@ -1394,3 +1394,66 @@ Plugin 资源请求地址:/apisix/admin/stream_routes/{id}
 | protocol.conf| 否| 配置 | 协议特定的配置。  
 ||
 
 你可以查看 [Stream Proxy](./stream-proxy.md#更多-route-匹配选项) 了解更多过滤器的信息。
+
+## Secret
+
+Secret 指的是 `Secrets Management`(密钥管理),可以使用任何支持的密钥管理器,例如 `vault`。
+
+### 请求地址 {#secret-config-uri}
+
+Secret 资源请求地址:/apisix/admin/secrets/{secretmanager}/{id}
+
+### 请求方法 {#secret-config-request-methods}
+
+| 名称 | 请求 URI  | 请求 body | 描述  
  |
+| :--: | :: | :---: | 
:---: |
+| GET  | /apisix/admin/secrets| NULL  | 获取所有 secret 的列表。   
   |
+| GET  | /apisix/admin/secrets/{manager}/{id} | NULL  | 根据 id 获取指定的 secret。
   |
+| PUT  | /apisix/admin/secrets/{manager}| {...} | 创建新的 secret 配置。  
|
+| DELETE | /apisix/admin/secrets/{manager}/{id} | NULL   | 删除具有指定 id 的 secret。 
|
+| PATCH  | /apisix/admin/secrets/{manager}/{id}| {...} | 更新指定 secret 
的选定属性。如果要删除一个属性,可以将该属性的值设置为 null。|
+| PATCH  | /apisix/admin/secrets/{manager}/{id}/{path} | {...} | 
更新路径中指定的属性。其他属性的值保持不变。
+
+### body 请求参数 {#secret-config-body-requset-parameters}
+
+当 `{secretmanager}` 是 `vault` 时:
+
+| 名称  | 必选项 | 类型| 描述   
 | 例子   
   |
+| --- |  | --- | 
--
 |  |
+| uri| 是 | URI|  Vault 服务器的 URI
 |  |
+| prefix| 是| 字符串   | 密钥前缀
+| token | 是| 字符串   | Vault 令牌 |
  |
+
+配置示例:
+
+```shell
+{
+"uri": "https://localhost/vault";,
+"prefix": "/apisix/kv",
+"token": "343effad"
+}
+
+```
+
+使用示例:
+
+```shell
+curl -i http://127.0.0.1:9180/apisix/admin/secrets/vault/test2 \
+-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"uri": "http://xxx/get";,
+"prefix" : "apisix",
+"token" : "apisix"
+}'
+```
+
+```shell
+HTTP/1.1 200 OK
+...
+
+{"key":"\/apisix\/secrets\/vault\/test2","value":{"id":"vault\/test2","token":"apisix","prefix":"apisix","update_time":1669625828,"create_time":1669625828,"uri":"http:\/\/xxx\/get"}}
+```
+
+### 应答参数 {#secret-config-response-parameters}
+
+当前的响应是从 etcd 返回的。



[apisix] branch master updated: docs: add correct link for openresty arm64 repo (#9713)

2023-06-25 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new b024f683e docs: add correct link for openresty arm64 repo (#9713)
b024f683e is described below

commit b024f683ef6f5310a180cdb6f792365e4c78f33a
Author: Abhishek Choudhary 
AuthorDate: Mon Jun 26 11:12:11 2023 +0530

docs: add correct link for openresty arm64 repo (#9713)
---
 docs/en/latest/installation-guide.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/en/latest/installation-guide.md 
b/docs/en/latest/installation-guide.md
index 737906894..4ae7e1930 100644
--- a/docs/en/latest/installation-guide.md
+++ b/docs/en/latest/installation-guide.md
@@ -184,7 +184,7 @@ wget -O - http://repos.apiseven.com/pubkey.gpg | sudo 
apt-key add -
 echo "deb http://repos.apiseven.com/packages/debian bullseye main" | sudo tee 
/etc/apt/sources.list.d/apisix.list
 
 # arm64
-echo "deb http://openresty.org/package/debian bullseye openresty" | sudo tee 
/etc/apt/sources.list.d/openresty.list
+echo "deb http://openresty.org/package/arm64/debian bullseye openresty" | sudo 
tee /etc/apt/sources.list.d/openresty.list
 wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
 wget -O - http://repos.apiseven.com/pubkey.gpg | sudo apt-key add -
 echo "deb http://repos.apiseven.com/packages/arm64/debian bullseye main" | 
sudo tee /etc/apt/sources.list.d/apisix.list



[apisix] branch master updated: docs: add example for timeout (#9708)

2023-06-22 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 3b31939d5 docs: add example for timeout (#9708)
3b31939d5 is described below

commit 3b31939d56ff4a9dc39609d1bcc0978f826f394f
Author: Abhishek Choudhary 
AuthorDate: Fri Jun 23 05:16:31 2023 +0530

docs: add example for timeout (#9708)
---
 docs/en/latest/admin-api.md | 2 +-
 docs/zh/latest/admin-api.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/en/latest/admin-api.md b/docs/en/latest/admin-api.md
index eb2701e69..74049f9ef 100644
--- a/docs/en/latest/admin-api.md
+++ b/docs/en/latest/admin-api.md
@@ -858,7 +858,7 @@ In addition to the equalization algorithm selections, 
Upstream also supports pas
 | checks  | optional| 
Configures the parameters for the [health check](./tutorials/health-check.md).  




   [...]
 | retries | optional| 
Sets the number of retries while passing the request to Upstream using the 
underlying Nginx mechanism. Set according to the number of available backend 
nodes by default. Setting this to `0` disables retry.   


   [...]
 | retry_timeout   | optional| 
Timeout to continue with retries. Setting this to `0` disables the retry 
timeout.



  [...]
-| timeout | optional| 
Sets the timeout (in seconds) for connecting to, and sending and receiving 
messages to and from the Upstream.  



[...]
+| timeout | optional| 
Sets the timeout (in seconds) for connecting to, and sending and receiving 
messages to and from the Upstream. | `{"connect": 0.5,"send": 0.5,"read": 0.5}` 
|
 | name| optional| 
Identifier for the Upstream.




   [...]
 | desc| optional| 
Description of usage scenarios. 




   [...]
 | pass_host   | optional| 
Configures the `host` when the request is forwarded to the upstream. Can be one 
of `pass`, `node` or `rewrite`. Defaults to `pass` if not specified. `pass`- 
transparently passes the client's host to the Upstream. `node`- uses the host 
configured in the node of the Upstream. `rewrite`- Uses the value configured in 
`upstream_host`.
[...]
diff --git a/docs/zh/latest/admin-api.md b/docs/zh/latest/admin-api.md
index 11980db12..72707eee4 100644
--- a/docs/zh/latest/admin-api.md
+++ b/docs/zh/latest/admin-api.md
@@ -871,7 +871,7 @@ APISIX 的 Upstream 除了基本的负载均衡算法选择外,还支持对上
 | checks | 否  

[apisix] branch master updated: docs: add missing triple backtick (#9665)

2023-06-15 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 476971bb8 docs: add missing triple backtick (#9665)
476971bb8 is described below

commit 476971bb8ca65a3c9d20f6083473bd0297fbe442
Author: Khanh Pham 
AuthorDate: Fri Jun 16 10:03:53 2023 +0700

docs: add missing triple backtick (#9665)
---
 docs/en/latest/FAQ.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs/en/latest/FAQ.md b/docs/en/latest/FAQ.md
index 02691f17b..b462e0158 100644
--- a/docs/en/latest/FAQ.md
+++ b/docs/en/latest/FAQ.md
@@ -732,6 +732,7 @@ curl http://127.0.0.1:9180/apisix/admin/routes/1 \
 }
 }
 }'
+```
 
 ## How does APISIX configure ETCD with authentication?
 



[apisix] branch master updated: docs: Update admin-api.md (#9602)

2023-06-11 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new dcb315bca docs: Update admin-api.md (#9602)
dcb315bca is described below

commit dcb315bca4617cf76b9a6d2a0f2b62612d535a58
Author: 十斤降世 
AuthorDate: Mon Jun 12 11:43:21 2023 +0800

docs: Update admin-api.md (#9602)
---
 docs/zh/latest/admin-api.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/zh/latest/admin-api.md b/docs/zh/latest/admin-api.md
index 847494d73..11980db12 100644
--- a/docs/zh/latest/admin-api.md
+++ b/docs/zh/latest/admin-api.md
@@ -65,7 +65,7 @@ deployment:
 port: 9180  # Admin API 监听的 端口,必须使用与 node_listen 
不同的端口。
 ```
 
-### 使用环境变量 {$using-environment-variables}
+### 使用环境变量 {#using-environment-variables}
 
 要通过环境变量进行配置,可以使用 `${{VAR}}` 语法。例如:
 



[apisix-website] branch master updated: docs: add 10 api management trends blog (#1568)

2023-05-10 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 2b38781803f docs: add 10 api management trends blog (#1568)
2b38781803f is described below

commit 2b38781803f4e63599cac9d251855d14e401188f
Author: 长龙 <362753...@qq.com>
AuthorDate: Wed May 10 18:25:47 2023 +0800

docs: add 10 api management trends blog (#1568)
---
 .../zh/blog/2023/04/03/10-api-management-trends.md | 176 +
 1 file changed, 176 insertions(+)

diff --git a/blog/zh/blog/2023/04/03/10-api-management-trends.md 
b/blog/zh/blog/2023/04/03/10-api-management-trends.md
new file mode 100644
index 000..fed57d1d6ce
--- /dev/null
+++ b/blog/zh/blog/2023/04/03/10-api-management-trends.md
@@ -0,0 +1,176 @@
+---
+title: "2023 年十大 API 管理趋势"
+authors:
+  - name: "郑玩星"
+title: "Author"
+url: "https://github.com/ronething";
+image_url: "https://github.com/ronething.png";
+keywords: 
+- APISIX
+- API 云端解决方案
+- API 网关
+- APISIX 商业化
+- 人工智能 API
+description: 本文探讨了 API 管理在数字化转型中的重要性,以及 API 管理面临的挑战和发展机遇。文章重点介绍了十大 API 
管理发展趋势,包括 API 安全性、API 标准化、云端 API 管理解决方案、低代码 API 平台、API 市场、新兴 API 协议、人工智能与 
API、开发者体验、API 分析和无服务器架构等。通过关注这些趋势,企业能更好地应对未来挑战,抓住发展机遇,实现业务的持续增长和创新。
+tags: [Ecosystem]
+---
+
+> 本文探讨了 API 管理在数字化转型中的重要性,以及 API 管理面临的挑战和发展机遇。文章重点介绍了十大 API 管理发展趋势,包括 API 
安全性、API 标准化、云端 API 管理解决方案、低代码 API 平台、API 市场、新兴 API 协议、人工智能与 API、开发者体验、API 
分析和无服务器架构等。通过关注这些趋势,企业能更好地应对未来挑战,抓住发展机遇,实现业务的持续增长和创新。
+
+
+
+> 作者[郑玩星](https://github.com/ronething),API7.ai 技术工程师。
+
+## 什么是 API?什么是 API 管理?
+
+近期,AIGC(AI Generated Content,生成式人工智能)在各行业的应用日趋普及。AIGC 服务提供商通过 API 
向外部提供其内容生成能力,使得用户能够便捷地获取 AIGC 应用相关内容。显然,API 成为 AIGC 应用的重要支柱。那么,究竟什么是 API 呢?
+
+API(Application Programming 
Interface,应用程序接口)是一系列预先定义的规则和约定,目的是用于不同软件应用之间的通信。API 
使得一个软件应用程序(即客户端)能够请求另一个软件应用程序(即服务器)的功能与数据,从而促成不同系统间的互动和数据共享。借助 
API,开发者能够利用其他应用程序的功能,从而更快速地构建和发布新应用。
+
+API 管理包括创建和发布 API、制定使用策略、控制访问权限、培养用户社区、搜集与分析使用统计数据以及报告性能等过程,通常包含 API 
网关、开发者门户等组件。其中,API 网关作为关键组件,负责处理和转发请求,同时执行安全和性能策略,而开发者门户则是一个在线平台,为开发者提供 API 
文档、密钥管理和其他相关资源。
+
+随着企业日益依赖 API 推进数字化转型,API 管理的重要性空前提升。在简要介绍了相关概念之后,接下来我们将探讨 API 管理的十大发展趋势。
+
+## API 安全性越来越重要
+
+API 安全性是指保护应用程序和系统之间通过 API 交换数据和功能的过程。API 
安全性的主要目标是确保数据和功能的正确性、可靠性和私密性,防止未经授权的访问和潜在的恶意攻击。API 安全性对于现代应用和企业服务至关重要,因为它们大量依赖于 
API 进行数据交换和集成。以下是 API 安全性重要的几点原因:
+
+1. **数据保护**:API 通常用于传输敏感数据,如用户信息、交易细节和支付信息。确保 API 
安全性可以防止数据泄露、篡改和丢失,保障用户和企业的信息安全。
+
+2. **系统完整性**:通过确保 API 只能被合法用户和合规应用访问,可以维护系统完整性。这有助于防止恶意攻击者通过 API 破坏或控制系统。
+
+3. **信任和声誉**:一个安全的 API 可以提高用户对企业服务的信任度,有助于建立良好的品牌声誉。相反,如果 API 
安全性不足,可能导致企业声誉受损,用户流失。
+
+为了保障 API 的安全性,通常我们可以利用 API 网关来管理安全功能,例如身份验证和访问控制,以保护 API 免受未经授权的访问和攻击。市场上已有许多 
API 网关提供这些功能,其中之一便是 Apache APISIX。[Apache APISIX](https://apisix.apache.org/) 是 
Apache 软件基金会下的云原生 API 网关,兼具动态、实时、高性能等特点。它提供了一系列安全功能,以确保 API 的安全性。例如,Apache 
APISIX 支持通过 `key-auth`、`jwt-auth` 等插件进行身份验证,以及通过 `consumer-restriction` 
等插件进行访问控制。这些功能帮助企业防止数据泄露,保护用户隐私及企业利益。
+
+## API 标准化日益重要
+
+随着 API 的广泛应用,API 标准化变得越来越重要。以下是 API 标准化的几大好处:
+
+1. **促进组织内部的协作和沟通**:让不同团队和部门遵循统一的设计原则和规范,提高开发效率和质量。
+
+2. **增强 API 的安全性和稳定性**:通过定义清晰的接口、数据结构和协议,防止错误或滥用的情况发生。
+
+3. **提升 API 的可扩展性和互操作性**:通过遵循行业或社区认可的设计指南或最佳实践,使 API 能够适应不同的场景和需求。
+
+在 API 标准化过程中,常见的 API 标准规范有 [OpenAPI 
Specfication](https://swagger.io/specification/)。许多工具和平台都支持这种规范,以方便用户导入和管理 
API。例如,[Apache APISIX Dashboard](https://github.com/apache/apisix-dashboard) 
就可以通过 OpenAPI 文档进行导入相关路由数据。
+
+![import routes 
data](https://static.apiseven.com/uploads/2023/03/24/JoFz3ZOy_openapi.png)
+
+利用这些标准规范,团队可以轻松地在不同平台和工具之间共享和管理 API,进一步提高协作效率和 API 的可维护性。
+
+## 云端 API 管理解决方案的普及
+
+传统的 API 管理解决方案通常侧重于在本地部署和管理 API,这意味着企业需要购买、部署和维护硬件和软件资源,以支持 API 
的开发、发布和监控。然而,随着业务的发展和云计算技术的普及,传统的 API 管理解决方案在可伸缩性、成本效益和跨平台集成方面面临一定的挑战。
+
+与此同时,云端 API 管理解决方案应运而生。这类解决方案充分利用了云计算的弹性、按需付费和跨平台特性,为企业提供了一种更为灵活、高效和可靠的 API 
管理方式。云端 API 管理解决方案通常包括 API 网关、安全功能、监控和分析等组件,以支持企业在混合云和多云环境中实现 API 的统一管理。
+
+相比于传统的 API 管理解决方案,云端 API 管理解决方案拥有以下优势:
+
+1. **高可用性**:得益于云端 API 管理解决方案提供弹性的负载均衡与自动扩展功能、以及自动化的故障切换和灾难恢复能力,使得云端 API 
管理解决方案具备更高的可用性。
+
+2. **降低成本**:云端 API 管理解决方案可以降低 API 的开发、部署和维护成本,让企业专注于业务创新而无需担心基础设施的管理。
+
+3. **跨平台支持**:云端 API 管理解决方案支持混合云和多云环境,实现跨平台的 API 
集成和管理,让企业可以轻松地在不同云服务提供商之间迁移和扩展其 API。
+
+值得一提的是,基于 Apache APISIX 的 [API7 Cloud](https://api7.ai/cloud) 产品正是这样一种云端 API 
管理解决方案。API7 Cloud 采用了现代化的云架构,可以帮助企业管理部署在混合云和多云上的 API,并高效、可靠地连接它们,相较于传统 API 
解决方案,具有更多的优势和灵活性。
+
+## 使用低代码 API 平台方便创建发布 API
+
+低代码 API 平台是一种允许用户通过简单的图形界面和预构建的模块创建、发布和管理 API 的工具。这些平台旨在简化 API 
开发过程,降低开发门槛,提高开发效率。
+
+一个具体的例子是,[Apache APISIX Dashboard](https://github.com/apache/apisix-dashboard) 
创建路由的时候,无需手动编写代码,可以使用拖拽方式进行插件编排组合不同的插件。
+
+![plugin-config](https://static.apiseven.com/uploads/2023/03/21/b35zInFq_plugin-config.png)
+
+## API 市场的发展
+
+随着 API 的普及,API 市场逐渐成为企业从各种供应商发现、评估和购买 API 的一种方式。API 市场可以帮助企业加速创新,降低开发成本。
+
+1. 对于 API 供应商,API 市场可以提高他们的 API 的可见性和吸引力,增加他们

[apisix] branch master updated: docs: fix grammar (#9395)

2023-05-07 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new cc286fc03 docs: fix grammar (#9395)
cc286fc03 is described below

commit cc286fc03826f48eb48a84445dacaa561d304a81
Author: 十斤降世 
AuthorDate: Sun May 7 18:27:09 2023 +0800

docs: fix grammar (#9395)
---
 docs/zh/latest/tutorials/expose-api.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/zh/latest/tutorials/expose-api.md 
b/docs/zh/latest/tutorials/expose-api.md
index 9569ff99d..4413778a5 100644
--- a/docs/zh/latest/tutorials/expose-api.md
+++ b/docs/zh/latest/tutorials/expose-api.md
@@ -37,7 +37,7 @@ description: 本文介绍了如何通过 Apache APISIX 发布服务和路由。
 
 [Upstream](../terminology/upstream.md) 也称为上游,上游是对虚拟主机的抽象,即应用层服务或节点的抽象。
 
-上游的作用是按照配置规则对服务节点进行负载均衡,它的地址信息可以直接配置到路由或服务上。当多个路由或服务引用同一个上游时,可以通过创建上游对象,在路由或服务中使用上游的
 ID 方式引用上游,减轻维护压力。
+上游的作用是按照配置规则对服务节点进行负载均衡,它的地址信息可以直接配置到路由或服务上。当多个路由或服务引用同一个上游时,可以通过创建上游对象,在路由或服务中使用上游
 ID 的方式引用上游,减轻维护压力。
 
 ### 路由
 



[apisix] branch master updated: docs: fix grammar (#8935)

2023-03-05 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 4eafebcc1 docs: fix grammar (#8935)
4eafebcc1 is described below

commit 4eafebcc1b07468f4449e18ae8d6deddc4d3332d
Author: Abhishek Choudhary 
AuthorDate: Sun Mar 5 15:09:54 2023 +0530

docs: fix grammar (#8935)
---
 docs/en/latest/plugins/proxy-rewrite.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/en/latest/plugins/proxy-rewrite.md 
b/docs/en/latest/plugins/proxy-rewrite.md
index b4c14d7d5..7e9a97d38 100644
--- a/docs/en/latest/plugins/proxy-rewrite.md
+++ b/docs/en/latest/plugins/proxy-rewrite.md
@@ -41,7 +41,7 @@ The `proxy-rewrite` Plugin rewrites Upstream proxy 
information such as `scheme`,
 | host| string| False| |   

 | New Upstream host address.   



  [...]
 | headers | object| False| |   

|   |
 | headers.add | object   | false || | Append 
the new headers. The format is `{"name: value",...}`. The values in the header 
can contain Nginx variables like $remote_addr and $balancer_ip. 
 |
-| headers.set | object  | false || | Overwrite 
the headers. If header is not exist, will add it. The format is  `{"name": 
"value", ...}`. The values in the header can contain Nginx variables like 
$remote_addr and $balancer_ip.  
  |
+| headers.set | object  | false || | Overwrite 
the headers. If the header does not exist, it will be added. The format is  
`{"name": "value", ...}`. The values in the header can contain Nginx variables 
like $remote_addr and $balancer_ip. 
   |
 | headers.remove  | array   | false || | Remove 
the headers. The format is `["name", ...]`.
 | use_real_request_uri_unsafe | boolean   | False| false   |   

 | Use real_request_uri (original 
$request_uri in nginx) to bypass URI normalization. **Enabling this is 
considered unsafe as it bypasses all URI normalization steps**. 

 [...]
 



[apisix-website] branch master updated: blog(weekly-report-0226.md): fix syntax (#1519)

2023-03-03 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 919565229ca blog(weekly-report-0226.md): fix syntax (#1519)
919565229ca is described below

commit 919565229caf5d2a0c8b26f31c34002cc3db32cd
Author: Young 
AuthorDate: Fri Mar 3 22:49:35 2023 +0800

blog(weekly-report-0226.md): fix syntax (#1519)
---
 blog/en/blog/2023/03/02/weekly-report-0226.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/blog/en/blog/2023/03/02/weekly-report-0226.md 
b/blog/en/blog/2023/03/02/weekly-report-0226.md
index 0e8207790b1..01e062ae22d 100644
--- a/blog/en/blog/2023/03/02/weekly-report-0226.md
+++ b/blog/en/blog/2023/03/02/weekly-report-0226.md
@@ -10,6 +10,8 @@ tags: [Community]
 image: 
https://static.apiseven.com/uploads/2023/03/01/8dHeqsLZ_%E9%A3%9E%E4%B9%A620230301-134627.png
 ---
 
+
+
 ## Introduction
 
 Apache APISIX grew up as a community from the first day it was open-sourced, 
and quickly became the most active open-source API gateway project in the 
world. These achievements are inseparable from the joint efforts of community 
partners.



[apisix-website] branch master updated: docs:add something about api gateway policy blog (#1488)

2023-02-01 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 1eb395d5c2b docs:add something about api gateway policy blog (#1488)
1eb395d5c2b is described below

commit 1eb395d5c2b64c3d2d48b98a63963faf70c7b577
Author: 长龙 <362753...@qq.com>
AuthorDate: Thu Feb 2 12:34:44 2023 +0800

docs:add something about api gateway policy blog (#1488)
---
 .../01/30/something-about-api-gateway-policy.md| 226 +
 1 file changed, 226 insertions(+)

diff --git a/blog/zh/blog/2023/01/30/something-about-api-gateway-policy.md 
b/blog/zh/blog/2023/01/30/something-about-api-gateway-policy.md
new file mode 100644
index 000..2e3cabadfa4
--- /dev/null
+++ b/blog/zh/blog/2023/01/30/something-about-api-gateway-policy.md
@@ -0,0 +1,226 @@
+---
+title: "API 网关策略的二三事"
+authors:
+  - name: "暴渊"
+title: "Author"
+url: "https://github.com/Baoyuantop";
+image_url: "https://github.com/Baoyuantop.png";
+keywords:
+- API Gateway
+- 网关策略
+- APISIX
+- Gateway Policy 
+description: 这篇文章介绍了什么是 API 网关策略,并针对认证授权、安全、流量处理与可观测性这四类 API 网关中常用的策略进行描述。
+tags: [Ecosystem]
+---
+
+> 这篇文章介绍了什么是 API 网关策略,并针对认证授权、安全、流量处理与可观测性这四类 API 网关中常用的策略进行描述。
+
+
+
+> 作者[暴渊](https://github.com/Baoyuantop),API7.ai 技术工程师,Apache APISIX Committer。
+
+近些年随着云原生和微服务架构的日趋发展,API 网关以流量入口的角色在技术架构中扮演着越来越重要的作用。**API 
网关主要负责接收所有请求的流量并进行处理转发至上游服务,API 网关的策略决定了 API 网关处理这些流量的逻辑与规则,直接决定了实际的业务流量行为。**
+
+## 什么是 API 网关策略?
+
+API 网关一般位于所有的上游服务之前,当用户向服务发送请求后请求会先到 API 网关,API 网关接收到请求之后一般会判断几件事情:
+
+1. **请求是否合法,比如是否来自被禁止访问的用户列表中;**
+2. **这个请求是否通过认证,访问的内容是否是经过授权的;**
+3. **请求是否触发了某些限制规则,比如限流限速等;**
+4. **请求应该转发给哪个上游服务。**
+
+经过这一系列步骤,这个请求要么不符合预设的规则被拒绝,要么经过了层层处理正确到达指定的上游服务中。我们将这些处理规则称之为 API 
网关的策略。这些规则由网关的管理员在网关运行时不断添加至网关中,网关接受这些规则并根据这些规则作出正确的流量处理行为。
+
+以 API 网关 [Apache APISIX](https://apisix.apache.org/) 为例,APISIX 
的配置信息有两种:网关启动用的配置文件,比如 `config.yaml`,这个文件决定了网关正常启动所必须的一些配置。另外在运行时管理员可以通过 [Admin 
API](https://apisix.apache.org/docs/apisix/admin-api/) 动态创建各种规则与配置,比如 
Route、Consumer、Plugin 等等。API 网关的策略就是管理员通过 Admin API 动态创建的各种规则与配置。
+
+本文不再额外描述基本常用场景,而是针对认证授权、安全、流量处理与可观测性这四类 API 网关中重要的场景进行阐述,介绍每种场景下包含的一些 API 
网关策略的作用以及使用方法。
+
+## 认证和授权策略
+
+认证可以确认 API 调用者的身份,授权主要限制调用者仅能访问权限内的资源。
+
+![授权调用](https://static.apiseven.com/uploads/2023/01/29/EuHMTBfw_download_image%20%283%29%20%281%29.png)
+
+比如说一位乘客前往车站出行,进入车站之前会使用身份证进行“认证”确认身份,在进入车站后出示车票,经工作人员确认后被“授权”进入某班列车。
+
+认证授权类策略主要目的是保证网关转发到上游服务的所有请求都是经过认证和授权的,不会出现非法请求。并且访问的都是权限范围内的资源。比较常用的策略有下面几种:
+
+### Basic Auth
+
+[基本访问认证](https://en.wikipedia.org/wiki/Basic_access_authentication)策略,这是一种最简单的访问控制技术。一般由用户的
 HTTP 代理在发出请求时携带用于认证的请求头,一般为:`Authorization: Basic `,credentials 
中即包含了用户认证需要的用户 ID 和密码,使用 `:` 隔离。这种方式不需要登陆页面、cookie 
等繁杂的设置,仅仅基于请求头中的简单凭据信息进行认证,一般为用户名和密码,配置使用起来较为简单。
+
+携带基本认证的 `cURL` 请求的示例如下,用户名为 `username`,密码为 `password`:
+
+```shell
+curl -i -u 'username:password' http://127.0.0.1:8080/hello
+```
+
+需要注意的是 `credentials` 中的信息在传输过程中并不会被加密,仅仅做 Base64 编码,所以通常需要和 HTTPS 
一起使用来保证密码的安全性。
+
+在网关中实施这一策略后,未携带凭据的请求将无法正常通过网关转发,除非在请求中携带了正确的认证信息,实现了最小成本下为 API 添加了访问验证。
+
+### Key Auth
+
+Key Auth 策略通过在 API 中添加 Key 来限制 API 调用,并识别请求携带的 Key 来进行访问资源的控制。只有携带了正确的 Key 
之后的请求才能正常访问,可以在请求头中或 Query 中携带。通常还可以通过这个 Key 来区分不同的 API 
调用方,从而可以针对不同的调用方实施不同的其他策略或资源控制。同样的 Key 在 HTTP 中是明文传输的,确保请求使用了 HTTPS 以保证安全。
+
+以 APISIX 的 [key-auth](https://apisix.apache.org/docs/apisix/plugins/key-auth/) 
插件为例,插件需要通过 Admin API 创建一个具有唯一 key 值的 Consumer:
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/consumers \
+-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"username": "jack",
+"plugins": {
+"key-auth": {
+"key": "jack-key"
+}
+}
+}'
+```
+
+这一请求创建了一个名字为 `jack` 的 Consumer,它的 key 值为 `jack-key`。在路由中启用插件时需要配置网关从请求中读取 Key 
值的位置和字段名称。默认的配置位置为 `header` ,字段名称为 `apikey`, 那么正确的请求这个路由的示例为:
+
+```shell
+curl -i http://127.0.0.1:8080/hello -H 'apikey: jack-key'
+```
+
+APISIX 在收到这一请求后会从请求中解析出 Key,然后从配置的所有 Key 中找到和这个请求匹配的 Consumer 
`jack`,这样网关就清楚这个请求是 `jack` 发出的。如果没有找到匹配的 Key 即可判定为非法请求。
+
+### JSON Web Token(JWT)
+
+JSON Web Token (JWT) 
是一个开放的[标准](https://www.rfc-editor.org/rfc/rfc7519),它定义了一种以 json 
对象形式在各方之间安全传递信息的方式。JWT 策略可以集认证和授权于一身,在用户取得授权后会向用户传输一个 JWT 
Token,在后面的所有请求中调用方都会携带这个 Token 从而保证请求是被授权的。
+
+在 API 网关中可以通过 JWT 策略将 [JWT](https://jwt.io/) 
身份验证能力添加到网关中,从而把这层逻辑从业务中抽离出来,业务实现者可以更加专注实现业务逻辑。以 APISIX 的 
[jwt-auth](https://apisix.apache.org/zh/docs/apisix/plugins/jwt-auth/) 
插件为例,插件需要在 Consumer 中启用并配置唯一的 Key、加密用的公私钥、加密算法、Token 
过期时间等。同时还需要在路由中启用这一插件并配置网关读取 Token 的位置和字段,比如 header、query、cookie 等。该插件会在 API 
网关中添加一个 API 用于签发 Token。在发送请求之前需要请求签发 token 的 API 获得 
Token,发送请求时需要根据配置信息在指定的位置上携带这一 Token。在请求到达网关后网关会按照配置信息从请求的指定位置读取 Token 并验证 
Token 的有效性,验证通过后该请求才能被转发

[apisix-website] branch master updated: docs:add what is service mesh blog (#1480)

2023-02-01 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 0a2f878128a docs:add what is service mesh blog (#1480)
0a2f878128a is described below

commit 0a2f878128a6b31dc44ccbbc2e588fea3c6cf4ec
Author: 长龙 <362753...@qq.com>
AuthorDate: Thu Feb 2 12:34:22 2023 +0800

docs:add what is service mesh blog (#1480)
---
 blog/zh/blog/2023/01/18/what-is-service-mesh.md | 145 
 1 file changed, 145 insertions(+)

diff --git a/blog/zh/blog/2023/01/18/what-is-service-mesh.md 
b/blog/zh/blog/2023/01/18/what-is-service-mesh.md
new file mode 100644
index 000..987538fc148
--- /dev/null
+++ b/blog/zh/blog/2023/01/18/what-is-service-mesh.md
@@ -0,0 +1,145 @@
+---
+title: "服务网格领域的百花齐放,是否存在一个更优解?"
+authors:
+  - name: "林志煌"
+title: "Author"
+url: "https://github.com/hansedong";
+image_url: "https://github.com/hansedong.png";
+  - name: "lingsamuel"
+title: "Author"
+url: "https://github.com/lingsamuel";
+image_url: "https://github.com/lingsamuel.png";
+keywords: 
+- 服务网格
+- Apache APISIX
+- Amesh
+- Service Mesh
+- Kubernetes
+- Istio
+description: 本文介绍了什么是服务网格?服务网格如何工作?以及具体实际应用。然后介绍了什么是 Amesh?以及 Amesh 目前的发展状态。
+tags: [Ecosystem]
+---
+
+> 本文介绍了什么是服务网格?服务网格如何工作?以及具体实际应用。然后介绍了什么是 Amesh?以及 Amesh 目前的发展状态。
+
+
+
+> 作者[lingsamuel](https://github.com/lingsamuel),API7.ai 云原生技术专家,Apache APISIX 
Committer。
+>
+> 作者[林志煌](https://github.com/oil-oil),API7.ai 技术工程师,Apache APISIX contributor。
+
+**服务网格是一种技术架构,它用于管理微服务系统中各个服务之间的通信,旨在处理微服务间的流量(也称为东西向流量)。**
+
+![服务网格示例图](https://static.apiseven.com/uploads/2023/01/18/wScWsjXh_download_image%20%2810%29.png)
+
+在云原生应用中,一个应用的背后可能存在着成百上千个服务,各个服务可能又有着若干个实例,各个实例的状态也一直在变化。在如此复杂的服务运行环境中,如何保障用户的可靠访问以及维持业务的平稳运行成为一个很大的挑战,服务网格的治理方案便应运而生。
+
+服务网格就像是微服务间的 TCP/IP,负责服务间的网络调用、限流限速、监控等。服务网格目前主要应用在 Kubernetes 
平台上,其最经典的一种实现模式是 Sidecar 模式:将一些通用功能抽象到 Sidecar 容器中,并将 Sidecar 容器与服务容器挂载在同一个 Pod 
里。由于 Sidecar 容器与服务容器并行,且各个 Sidecar 间相互通讯,共同构成了网格形式的网络,因此称之为服务网格。当然,Sidecar 
并非唯一的一种服务网格实现模式,除此之外还有 [DaemonSet 
模式](https://wecode.wepay.com/posts/scds-battle-of-containerization)及 [Ambient 
mesh 模式](https://istio.io/latest/blog/2022/introducing-ambient-mesh/)。
+
+## 为什么需要服务网格?
+
+在服务网格流行之前,很多微服务架构的服务治理都是通过微服务框架配合控制平台实现的,这种方式存在以下几个问题:
+
+1. 框架与业务耦合,整体复杂度与运维难度很高,且开发者需要对公共库有一定的了解,没法只专注于业务实现。
+2. 需要维护多种语言版本的框架,增加了维护的成本。
+3. 微服务框架本身的升级成本比较高,在升级时往往需要进行业务重启等操作。
+4. 线上存在很多版本的框架,会导致复杂的兼容性考虑。
+
+面对以上这些问题,原 Twitter 工程师 Willian Morgan 提出了 Service Mesh 的概念,即服务网格。服务网格通过 
Sidecar 模式实现在不侵入业务服务的情况下将基础设施与业务逻辑解耦,实现跨语言统一更新发布及运维。
+
+![服务网格内部实现](https://static.apiseven.com/uploads/2023/01/18/K8DWpiNn_download_image%20%283%29.jpeg)
+
+服务网格将流量管理、可观测性和安全通讯等功能下沉到基础组件,因此开发者无需关心通信层和服务治理的具体实现,与通信相关的一切工作直接交给服务网格,让开发者能够更关注于业务的开发。基于服务网格的这些特点,前面提到的几个问题都能够得到有效解决。
+
+## 服务网格是如何工作的?
+
+服务网格不会为应用的运行时环境加入新功能,任何架构中的应用还是需要相应的规则来指定请求如何从 A 点到达 B 
点。但服务网格的不同之处在于,它从各个服务中提取逻辑管理的服务间通信,并将其抽象为一个基础架构层。
+
+目前服务网格大多数采用是**数据面** + **控制面**的架构模式,如下图所示:
+
+![目前的服务网格示例图](https://static.apiseven.com/uploads/2023/01/18/U2Vw7rs3_download_image%20%282%29%20%281%29.png)
+
+其中控制面用于管理和配置数据面以及在运行时执行策略。单个网格中控制平面的所有实例共享相同的配置资源。主要聚焦于安全、可观测性、流量管控等策略的处理和下发,同时还能够收集和集中数据平面的遥测数据,供运维人员使用。
+
+而数据面通常以代理的形式实现,是由一个个的网络代理 Sidecar 组成,Sidecar 与业务应用实例并行,通过拦截业务数据流以管控业务应用的流量。
+
+在前面的介绍中有提到服务网格是将 Sidecar 设计模式在 Kubernetes 进行实现,通过容器化的方式实现了封装,Sidecar 
主张以额外的容器来扩展或增强主容器,这个额外的容器被称为 Sidecar 容器,它与业务容器在同一个 Pod 中。而服务网格即是一个个 Sidecar 
代理所构成的网格式网络。
+
+## 服务网格的实际应用
+
+在微服务架构中,工程师往往会为对外暴露的服务采取加密或访问限制的措施以保障服务的安全,但却忽视了集群内部的流量通信安全,所以至今仍有很多微服务应用没有采取服务间通信的加密措施,集群内部的流量以明文的形式进行传输,非常容易导致内部流量遭到数据窃听或是中间人攻击。
+
+而为了防止集群内部流量遭到攻击,通常会使用 mTLS 将通讯数据进行加密。mTLS 
可以用于确保服务网格中微服务之间的通信安全。它使用加密安全技术相互认证各个微服务并加密它们之间的流量。
+
+![mTLS加密](https://static.apiseven.com/uploads/2023/01/18/bT2Zctxd_download_image%20%281%29%20%281%29.png)
+
+虽然可以直接在微服务中定义通信安全策略并执行身份验证和加密,但在每一个微服务中去单独实现相同的功能效率是很低的。而且增加功能还需要改动业务代码,侵入业务逻辑。且即便完成了功能,后期的升级迭代与测试都需要开发者投入额外精力去维护,无法专注于业务功能的开发。
+
+而使用服务网格,我们就可以在不影响原本业务的情况下零感知的为服务提供 mTLS 通信。因为在服务网格中,服务通信相关的功能都被转移至 Sidecar 
代理中实现。**在整个实现过程中,业务应用都不会受到影响,降低开发者心智负担。**
+
+当然,服务网格除了可以实现类似 mTLS 这类的内部流量安全配置功能,通过调整控制面的配置还能快速的拓展包括流量管控,可观测性,协议编解码等更多功能。
+
+## 更优的服务网格方案?
+
+虽然服务网格解决了很多微服务架构中的痛点,但它也同时有自己的局限性,在软件开发中复杂度是不灭的,只是在不同的部分之间做转移。我们将服务治理抽离为单独的一层就要面对流量链路的增长以及运维难度的提升,且服务网格需要在云原生的环境中使用,这对于运维的专业能力及工程实践经验有了更高的要求。所以说技术只是用于解决问题的工具,服务网格能带来的价值还是得从应用的从实际情况出发。
+
+作为 Apache 软件基金会的顶级项目,Apache APISIX 是一个动态、实时、高性能的云原生 API 
网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。在基于 APISIX 的扩展道路上,除了 APISIX 
Ingress 在云原生领域被各大厂商开始关注外,基于 APISIX 的服务网格方案也在积极迭代中。
+
+## 基于 APISIX 的服务网格方案——Amesh
+
+[Amesh](https://github.com/api7/Amesh) 是 [Apache 
APISIX](https://github.com/apache/apisix) 的服务网格库。它适配了 xDS 协议,可以从诸如 Istio 
的控制平面中接收数据,并生成 APISIX 所需的数据结构,使得 APISIX 能够在服务网格领域作为数据面发挥作用。
+
+依靠 Amesh,APISIX 可以工作在服务网格模式下,不使用传统的 e

[apisix-website] branch master updated: docs: add apisix with consul blog (#1478)

2023-01-19 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 428b481022e docs: add apisix with consul blog (#1478)
428b481022e is described below

commit 428b481022ea6fbec02534c7319aafdb675bbd60
Author: fabriceli 
AuthorDate: Fri Jan 20 13:50:16 2023 +0800

docs: add apisix with consul blog (#1478)

* feat: add apisix with consul

* feat: add apisix with consul

* feat: add apisix with consul

* feat: add apisix with consul

* feat: add apisix with consul

* feat: add apisix with consul

* fix cr

Co-authored-by: Fabriceli 
---
 blog/en/blog/2023/01/18/consul-with-apisix.md | 278 ++
 blog/zh/blog/2023/01/18/consul-with-apisix.md | 271 +
 2 files changed, 549 insertions(+)

diff --git a/blog/en/blog/2023/01/18/consul-with-apisix.md 
b/blog/en/blog/2023/01/18/consul-with-apisix.md
new file mode 100644
index 000..9a275b683fe
--- /dev/null
+++ b/blog/en/blog/2023/01/18/consul-with-apisix.md
@@ -0,0 +1,278 @@
+---
+title: "How to Integrate API Gateway and Consul? Not Consul K/V"
+authors:
+  - name: "Yihao LI"
+title: "Author"
+url: "https://github.com/Fabriceli";
+image_url: "https://github.com/Fabriceli.png";
+keywords:
+- API Gateway
+- Consul
+- Service Discovery
+- Service Register
+description: Apache APISIX supports the Consul service discovery registry. 
This article will walk you through the process of implementing service 
discovery and service registry in APISIX.
+tags: [Ecosystem]
+image: 
https://static.apiseven.com/2022/blog/0818/ecosystem/HashiCorp%20Consul.png
+---
+
+> Apache APISIX supports the Consul service discovery registry. This article 
will walk you through the process of implementing service discovery and service 
registry in Apache APISIX.
+
+
+
+## Background
+
+### About Apache APISIX
+
+Apache APISIX is an open source, dynamic, scalable, and high-performance cloud 
native API gateway for all your APIs and microservices.
+
+APISIX facilitates interface traffic handling for websites, mobile and IoT 
applications by providing services such as load balancing, dynamic upstream, 
canary release, fine-grained routing, rate limiting, and many more.
+
+### About Consul
+
+Consul is a distributed, highly available, and data center aware solution to 
connect and configure applications across dynamic, distributed infrastructure. 
Consul provides several key features: Multi-Datacenter, Service Mesh, Service 
Discovery, Health Checking, Key/Value Storage
+
+## Preparation Phase
+
+The test environments in this article are built in Docker using docker-compose.
+
+1. Download Apache APISIX
+
+  ```sh
+  git clone https://github.com/apache/apisix-docker.git
+  ```
+
+2. Create and run Consul
+
+  ```sh
+  docker run --rm --name consul_1 -d -p 8500:8500 consul:1.8 consul agent 
-server -bootstrap-expect=1 -node=agent-one -client 0.0.0.0 -log-level info 
-data-dir=/consul/data -enable-script-checks
+   ```
+
+3. Update Apache APISIX config file `apisix_conf/config.yaml`
+
+  ```yaml
+  # config.yml
+  # ... other config
+  discovery:
+consul:
+  servers:
+- "http://127.0.0.1:8500";
+  ```
+
+4. Start Apache APISIX
+
+  ```sh
+  # cd example folder,and start APISIX
+  docker-compose -f docker-compose.yml -p apisix-docker  up -d
+  ```
+
+5. Example contains two web services that you can use directly to test.
+
+  ```sh
+  sudo docker inspect -f='{{.Name}} - {{range 
.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(sudo docker ps -aq) | grep 
web
+  # Outputs
+  /apisix-docker-web1-1 - 172.21.0.5
+  /apisix-docker-web2-1 - 172.21.0.6
+  ```
+
+6. Register the test service to Consul via Consul HTTP API.
+
+  ```shell
+  # Register with the corresponding IP and port
+  curl --location --request PUT 
'http://127.0.0.1:8500/v1/agent/service/register' \
+--header 'Content-Type: application/json' \
+--data '{
+"ID": "service_a1",
+"Name": "service_a",
+   "Tags": ["primary", "v1"],
+   "Address": "172.21.0.5",
+   "Port": 9081,
+   "Weights": {
+   "Passing": 10,
+   "Warning": 1
+   }
+}'
+
+  curl --location --request PUT 
'http://127.0.0.1:8500/v1/agent/service/register' \
+--header 'Content-Type: application/json' \
+--data '{
+  "ID": "service_a2",
+  "Name": "service_a",
+  "Tags": ["primary", "v1"],
+  "Address": "172.21.0.6"

[apisix] branch master updated: docs: fix deployment links (#8714)

2023-01-19 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 9e19dcc01 docs: fix deployment links (#8714)
9e19dcc01 is described below

commit 9e19dcc013463c9c00ad9988059b0c72f1f13fca
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Fri Jan 20 10:50:42 2023 +0800

docs: fix deployment links (#8714)
---
 docs/en/latest/certificate.md | 2 +-
 docs/zh/latest/certificate.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/en/latest/certificate.md b/docs/en/latest/certificate.md
index 4bcfa5ae2..f5f9c8cce 100644
--- a/docs/en/latest/certificate.md
+++ b/docs/en/latest/certificate.md
@@ -174,7 +174,7 @@ pair. So the length of `certs` and `keys` must be same.
 
 ### set up multiple CA certificates
 
-APISIX currently uses CA certificates in several places, such as [Protect 
Admin API](./mtls.md#protect-admin-api), [etcd with 
mTLS](./mtls.md#etcd-with-mtls), and [Deployment 
Modes](./architecture-design/deployment-role.md).
+APISIX currently uses CA certificates in several places, such as [Protect 
Admin API](./mtls.md#protect-admin-api), [etcd with 
mTLS](./mtls.md#etcd-with-mtls), and [Deployment Modes](./deployment-modes.md).
 
 In these places, `ssl_trusted_certificate` or `trusted_ca_cert` will be used 
to set up the CA certificate, but these configurations will eventually be 
translated into 
[lua_ssl_trusted_certificate](https://github.com/openresty/lua-nginx-module#lua_ssl_trusted_certificate)
 directive in OpenResty.
 
diff --git a/docs/zh/latest/certificate.md b/docs/zh/latest/certificate.md
index 310f53890..d1322bb65 100644
--- a/docs/zh/latest/certificate.md
+++ b/docs/zh/latest/certificate.md
@@ -171,7 +171,7 @@ curl --resolve 'www.test.com:9443:127.0.0.1' 
https://www.test.com:9443/hello  -v
 
 ### 设置多个 CA 证书
 
-APISIX 目前支持在多处设置 CA 证书,比如 [保护 Admin API](./mtls.md#保护-admin-api),[保护 
ETCD](./mtls.md#保护-etcd),以及 
[部署模式](../../en/latest/architecture-design/deployment-role.md) 等。
+APISIX 目前支持在多处设置 CA 证书,比如 [保护 Admin API](./mtls.md#保护-admin-api),[保护 
ETCD](./mtls.md#保护-etcd),以及 [部署模式](../../en/latest/deployment-modes.md) 等。
 
 在这些地方,使用 `ssl_trusted_certificate` 或 `trusted_ca_cert` 来配置 CA 证书,但是这些配置最终将转化为 
OpenResty 的 
[lua_ssl_trusted_certificate](https://github.com/openresty/lua-nginx-module#lua_ssl_trusted_certificate)
 指令。
 



[apisix] branch master updated: docs: fix plugin config naming (#8701)

2023-01-17 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 788705c59 docs: fix plugin config naming (#8701)
788705c59 is described below

commit 788705c591011d7c2b1b4e7508876bbe6989380d
Author: Abhishek Choudhary 
AuthorDate: Wed Jan 18 06:44:52 2023 +0530

docs: fix plugin config naming (#8701)
---
 docs/en/latest/terminology/plugin-config.md | 2 +-
 docs/en/latest/terminology/plugin.md| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/en/latest/terminology/plugin-config.md 
b/docs/en/latest/terminology/plugin-config.md
index 81d5ba732..7cc0a344c 100644
--- a/docs/en/latest/terminology/plugin-config.md
+++ b/docs/en/latest/terminology/plugin-config.md
@@ -30,7 +30,7 @@ description: Plugin Config in Apache APISIX.
 
 Plugin Configs are used to extract commonly used [Plugin](./plugin.md) 
configurations and can be bound directly to a [Route](./route.md).
 
-While configuring the same plugin, only one copy of the configuration is 
valid. The order of precedence is always `Consumer` > `Consumer Group` > 
`Route` > `plugin_config` > `Service`.
+While configuring the same plugin, only one copy of the configuration is 
valid. The order of precedence is always `Consumer` > `Consumer Group` > 
`Route` > `Plugin Config` > `Service`.
 
 ## Example
 
diff --git a/docs/en/latest/terminology/plugin.md 
b/docs/en/latest/terminology/plugin.md
index 13e496454..3ae73d86c 100644
--- a/docs/en/latest/terminology/plugin.md
+++ b/docs/en/latest/terminology/plugin.md
@@ -36,7 +36,7 @@ You can also refer to [Admin API](../admin-api.md#plugin) for 
how to use this re
 
 :::note
 
-While configuring the same plugin, only one copy of the configuration is 
valid. The order of precedence is always `Consumer` > `Consumer Group` > 
`Route` > `plugin_config` > `Service`.
+While configuring the same plugin, only one copy of the configuration is 
valid. The order of precedence is always `Consumer` > `Consumer Group` > 
`Route` > `Plugin Config` > `Service`.
 
 :::
 



[apisix] branch master updated: docs: fix code block (#8700)

2023-01-17 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new e472d4056 docs: fix code block (#8700)
e472d4056 is described below

commit e472d4056f7fe3f9d4e7fc4e97f1d1569ff73d9b
Author: Abhishek Choudhary 
AuthorDate: Wed Jan 18 06:44:05 2023 +0530

docs: fix code block (#8700)

* docs: fix code block

* docs: add line break
---
 docs/en/latest/terminology/plugin-config.md | 53 +++--
 1 file changed, 27 insertions(+), 26 deletions(-)

diff --git a/docs/en/latest/terminology/plugin-config.md 
b/docs/en/latest/terminology/plugin-config.md
index 3c1ec9d1d..81d5ba732 100644
--- a/docs/en/latest/terminology/plugin-config.md
+++ b/docs/en/latest/terminology/plugin-config.md
@@ -36,34 +36,35 @@ While configuring the same plugin, only one copy of the 
configuration is valid.
 
 The example below illustrates how to create a Plugin Config and bind it to a 
Route:
 
-```shell
-curl http://127.0.0.1:9180/apisix/admin/plugin_configs/1 \
--H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
-{
-"desc": "blah",
-"plugins": {
-"limit-count": {
-"count": 2,
-"time_window": 60,
-"rejected_code": 503
-}
+```shell
+curl http://127.0.0.1:9180/apisix/admin/plugin_configs/1 \
+-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
+{
+"desc": "blah",
+"plugins": {
+"limit-count": {
+"count": 2,
+"time_window": 60,
+"rejected_code": 503
 }
-}'
-```
-
-```shell
-curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
-{
-"uris": ["/index.html"],
-"plugin_config_id": 1,
-"upstream": {
-"type": "roundrobin",
-"nodes": {
-"127.0.0.1:1980": 1
-}
+}
+}'
+```
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/routes/1 \
+-H 'X-API-KEY:edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
+{
+"uris": ["/index.html"],
+"plugin_config_id": 1,
+"upstream": {
+"type": "roundrobin",
+"nodes": {
+"127.0.0.1:1980": 1
 }
-}'
-```
+}
+}'
+```
 
 When APISIX can't find the Plugin Config with the `id`, the requests reaching 
this Route are terminated with a status code of `503`.
 



[apisix] branch master updated: docs: rename kms to secret (#8697)

2023-01-17 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 75b67b200 docs: rename kms to secret (#8697)
75b67b200 is described below

commit 75b67b200cb07d10ee99243bf5557390abff4cf8
Author: Abhishek Choudhary 
AuthorDate: Tue Jan 17 15:22:02 2023 +0530

docs: rename kms to secret (#8697)

* change: rename kms to secret

* rename secret to secrets

* rename secret to secrets
---
 docs/en/latest/admin-api.md | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/docs/en/latest/admin-api.md b/docs/en/latest/admin-api.md
index 2abe98e41..230b84712 100644
--- a/docs/en/latest/admin-api.md
+++ b/docs/en/latest/admin-api.md
@@ -1350,13 +1350,13 @@ Stream Route resource request address:  
/apisix/admin/stream_routes/{id}
 
 To learn more about filtering in stream proxies, check 
[this](./stream-proxy.md#more-route-match-options) document.
 
-## kms
+## Secret
 
-kms means `Secrets Management`, which could use any secret manager supported, 
e.g. `vault`.
+Secret means `Secrets Management`, which could use any secret manager 
supported, e.g. `vault`.
 
-### kms API
+### Secret API
 
-kms resource request address: /apisix/admin/kms/{secretmanager}/{id}
+Secret resource request address: /apisix/admin/secrets/{secretmanager}/{id}
 
 ### Request Methods
 
@@ -1392,7 +1392,7 @@ Example Configuration:
 Example API usage:
 
 ```shell
-curl -i http://127.0.0.1:9180/apisix/admin/kms/vault/test2 \
+curl -i http://127.0.0.1:9180/apisix/admin/secrets/vault/test2 \
 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
 {
 "uri": "http://xxx/get";,



[apisix] branch master updated (63f8a67f2 -> d85295303)

2023-01-16 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


from 63f8a67f2 fix: upgrade lua-resty-etcd to 1.10.3 (#8668)
 add d85295303 docs: replace transparent logos with white background logos 
(#8689)

No new revisions were added by this update.

Summary of changes:
 README.md |   4 ++--
 logos/apisix-white-bg.jpg | Bin 0 -> 97975 bytes
 logos/cncf-landscape-white-bg.jpg | Bin 0 -> 131627 bytes
 logos/cncf-white-bg.jpg   | Bin 0 -> 47439 bytes
 4 files changed, 2 insertions(+), 2 deletions(-)
 create mode 100644 logos/apisix-white-bg.jpg
 create mode 100644 logos/cncf-landscape-white-bg.jpg
 create mode 100644 logos/cncf-white-bg.jpg



[apisix-website] branch master updated: docs:add weekly report and 2022 commmunity summary (#1463)

2023-01-16 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 5f495a5b9b2 docs:add weekly report and 2022 commmunity summary (#1463)
5f495a5b9b2 is described below

commit 5f495a5b9b21a8850d0b92e13e5bec36399145c1
Author: 长龙 <362753...@qq.com>
AuthorDate: Tue Jan 17 09:06:26 2023 +0800

docs:add weekly report and 2022 commmunity summary (#1463)

* docs:add weekly report and 2022 commmunity summart

* docs:add weekly report and 2022 commmunity summart

* docs:add weekly report and 2022 commmunity summary

* docs:add 2022 summary and weekly report
---
 blog/zh/blog/2022/11/23/weekly-report-1123.md |  1 +
 blog/zh/blog/2023/01/02/2022-summary.md   | 95 +++
 blog/zh/blog/2023/01/04/weekly-report-0105.md | 73 
 3 files changed, 169 insertions(+)

diff --git a/blog/zh/blog/2022/11/23/weekly-report-1123.md 
b/blog/zh/blog/2022/11/23/weekly-report-1123.md
index 6ab0e5284e7..866cfac59a8 100644
--- a/blog/zh/blog/2022/11/23/weekly-report-1123.md
+++ b/blog/zh/blog/2022/11/23/weekly-report-1123.md
@@ -55,6 +55,7 @@ Apache APISIX 的项目官网和 Github 上的 Issue 上已经积累了比较丰
 - 
[微服务中的服务发现是什么](https://apisix.apache.org/zh/blog/2022/11/10/what-is-service-in-microservice-discovery/)
 
 本文通过服务发现的相关背景和 APISIX 对于服务发现的应用与实践,来介绍微服务中的服务发现内容。
+
 - [实践一年之久,vivo 如何基于 APISIX 
进行业务基础架构的演进](https://apisix.apache.org/zh/blog/2022/11/13/vivo-with-apache-apisix/)
 
 本文从应用 APISIX 后的调整与实践困难角度入手,为大家带来了 vivo 基于 APISIX 的企业实践细节。
diff --git a/blog/zh/blog/2023/01/02/2022-summary.md 
b/blog/zh/blog/2023/01/02/2022-summary.md
new file mode 100644
index 000..15d402596fe
--- /dev/null
+++ b/blog/zh/blog/2023/01/02/2022-summary.md
@@ -0,0 +1,95 @@
+---
+title: "2022 Apache APISIX 年度记忆"
+author: "Sylvia"
+authorURL: "https://github.com/SylviaBABY";
+authorImageURL: "https://github.com/SylviaBABY.png";
+keywords: 
+- 社区动态
+- 年终总结
+- APISIX
+- 开源社区
+description: 本文介绍了 Apache APISIX 社区在 2022 年取得的成绩。
+tags: [Community]
+---
+
+> 本文将带您回顾 Apache APISIX 社区在 2022 年在各领域取得的成绩。
+
+
+
+时光已逝,转眼 2022 年已然落下了帷幕。Apache APISIX 社区在众多开源爱好者和开发者的陪伴下,又一起走过了新的四季。
+
+在过去的一年中,我们的开源项目和社区都取得了许多成就,并得到了来自全球范围的广泛关注和支持。2022 年,APISIX 
社区仍然在为全球技术开发者和企业提供优质的产品与支持,并不断改进和升级产品。这一年中,APISIX 新增了许多功能,并迈入了全新的 3.0 
时代;改善了用户体验,并得到了许多优秀贡献者的陪伴与合作。
+
+我们希望通过这一份纸上告白,向大家展示 Apache APISIX 在过去一年中取得的成就,并感谢所有为 APISIX 项目做出贡献的人。
+
+## 迈进 3.0 大版本,新增超多实用性功能
+
+进入 2022 年后,APISIX 从 1 月份开始依旧保持着良好的发版速度。**这一年中,APISIX 一共发布了 15 个版本,涉及 6 
个版本的更迭,包括旧版本的维护更新以及正常版本的迭代。**
+
+![releases](https://static.apiseven.com/2023/01/03/63b3eaa87d7d5.png)
+
+同时,在今年 APISIX 也将产品拉进了新的 3.0 时代,目前已针对 3.x 系列发布了 3 个更新版本。在 3.0 
的整体规划中,将会陆续带来更多的针对生态和产品体验上的功能提升,使 APISIX 的可用性更上一层楼。**在新的一年中,APISIX 
也会为产品带来更多实用性功能,助力企业在数字化转型的过程中,愈发轻松。**
+
+![3.0 roadmap](https://static.apiseven.com/2023/01/03/63b3eaa75f6f5.png)
+
+从 2019 年在 Apache 软件基金会毕业成为 Apache 社区顶级项目,到现在保持着稳定发版速度和活跃社区氛围的三年时间里,APISIX 项目在 
GitHub 上已得到 10K+ star 并拥有 6 亿多下载量,contributor 数量已经超过 500 人。同时每月保持贡献 70+ 
commit、处理 80+ issue 的响应速度。高活跃度的社区氛围,正是推动产品快速成长的关键因素。
+
+![github data](https://static.apiseven.com/2023/01/03/63b3eab9e3b22.png)
+
+## 泵入新鲜血液,收获行业认可
+
+**产品快速成长的背后,离不开社区中每一位成员的支持。** 在过去的一年中,APISIX 的贡献者人数增加了 200 
人左右。相比总贡献者人数,这一年的增长相当于总人数的近 40% 比例,可见今年 APISIX 
收获了开发者们超高的热情反馈,并将对开源产品的喜爱体现在了社区贡献中来。
+
+这三年的发展过程中,APISIX 得到了非常多开发者的肯定与认可,他们也在全球 20 多个国家和地区进行 APISIX 项目的宣传。为了感谢各位对 
APISIX 社区的喜爱,我们也会定期为参与 APISIX 社区的新晋贡献者们赠送社区周边,今年也是一样。
+
+上半年的新晋贡献者我们已派发过相关周边,下半年的新晋贡献者礼物也在紧锣密鼓地制作中。如果你有收到来自 APISIX 
社区的相关邮件,记得填写信息哦。当然,你也可以主动在 [GitHub 
页面](https://github.com/apache/apisix/blob/master/CONTRIBUTING.md)进行填写,之后就会有精美周边送到你手上。
+
+![contributor](https://static.apiseven.com/2023/01/03/63b3ea8cc7637.png)
+
+除了国内外开发者的认可外,今年 APISIX 
也收获了很多企业级的技术赞誉。比如在互联网保险领域,[众安保险](https://apisix.apache.org/zh/blog/2022/03/02/zhongan-usercase-with-apache-apisix/)
 在整个 DevOps 的全生命周期中,将 APISIX 作为流量治理的关键环节去处理,实现了更好的多渠道流量隔离;在智能汽车 AI 
领域,[地平线](https://apisix.apache.org/zh/blog/2022/10/28/apisix-ingress-with-horizon-ai/)
 则选择了 APISIX Ingress 替换 Traefik 
作为公司的统一流量网关,丰富了多云环境下的服务调用等功能;在国产手机领军队伍中,[vivo](https://apisix.apache.org/zh/blog/2022/11/13/vivo-with-apache-apisix/)
 使用 APISIX 替换了之前传统的 NGINX,同时基于 APISIX 还自研了内部业务配置管理系统 [...]
+
+![usercase](https://static.apiseven.com/2023/01/03/63b3ead0d9004.png)
+
+当然,以上也仅仅只选取了部分使用 APISIX 的企业用户,想要了解不同行业对于 APISIX 的实践,可以前往 
[社区官网](https://apisix.apache.org/zh/blog/tags/case-studies/) 查看更多细节。
+
+## 活动形式多样,持续践行 Apache Way
+
+在 2022 年中旬,APISIX 社区举办了第一次全球性质的大会—— Apache APISIX Summit Asia 
2022。在为期两天的活动中,我们见证了不同行业领域下的 APISIX 实践用例。由来自腾讯云、阿里云、VMware Tanzu Labs 
等顶级科技公司的工程师以及 APISIX PMC 成员们,带来了干货满满又富有借鉴意义的技术展示。
+
+除此之外,还有许多深入但有趣的圆桌研讨会,众多的开源贡献者和投资者就构建社区优先开源软件的原因和方法分享了他们的想法,帮助组织和企业更好地理解和使用开源 
API 管理工具。
+
+![image (21).png](https://static.apiseven.com/2023/01/03/63b3ead14eae7.png)

[apisix] branch release/3.1 updated: docs: fix error link about nacos deployment tutorial (#8662)

2023-01-12 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch release/3.1
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/release/3.1 by this push:
 new c8c3867c7 docs: fix error link about nacos deployment tutorial  (#8662)
c8c3867c7 is described below

commit c8c3867c749752a3440710cea5e0c49f1a5da840
Author: elijah <30852919+e1ij...@users.noreply.github.com>
AuthorDate: Fri Jan 13 09:29:50 2023 +0800

docs: fix error link about nacos deployment tutorial  (#8662)

* docs: fix error link

fix #8657

* Update control-plane-service-discovery.md

Co-authored-by: 琚致远 / Zhiyuan Ju 
---
 docs/en/latest/discovery/control-plane-service-discovery.md | 2 +-
 docs/zh/latest/discovery/control-plane-service-discovery.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/en/latest/discovery/control-plane-service-discovery.md 
b/docs/en/latest/discovery/control-plane-service-discovery.md
index a18bdc63d..0a20bcb43 100644
--- a/docs/en/latest/discovery/control-plane-service-discovery.md
+++ b/docs/en/latest/discovery/control-plane-service-discovery.md
@@ -69,4 +69,4 @@ ZooKeeper and Nacos are currently supported, and more service 
registries will be
 
 - If you want to enable control plane ZooKeeper service discovery, please 
refer to: [ZooKeeper Deployment 
Tutorial](https://github.com/api7/apisix-seed/blob/main/docs/en/latest/zookeeper.md).
 
-- If you want to enable control plane Nacos service discovery, please refer 
to: [Nacos Deployment 
Tutorial](https://github.com/api7/apisix-seed/blob/main/docs/en/latest/zookeeper.md).
+- If you want to enable control plane Nacos service discovery, please refer 
to: [Nacos Deployment 
Tutorial](https://github.com/api7/apisix-seed/blob/main/docs/en/latest/nacos.md).
diff --git a/docs/zh/latest/discovery/control-plane-service-discovery.md 
b/docs/zh/latest/discovery/control-plane-service-discovery.md
index b6bcb7450..f582666db 100644
--- a/docs/zh/latest/discovery/control-plane-service-discovery.md
+++ b/docs/zh/latest/discovery/control-plane-service-discovery.md
@@ -69,4 +69,4 @@ Apache APISIX 在早期已经支持了数据面服务发现,现在 APISIX 也
 
 - 如果你想启用控制面 ZooKeeper 服务发现,请参考:[ZooKeeper 
部署教程](https://github.com/api7/apisix-seed/blob/main/docs/en/latest/zookeeper.md)。
 
-- 如果你想启用控制面 Nacos 服务发现,请参考:[Nacos 
部署教程](https://github.com/api7/apisix-seed/blob/main/docs/en/latest/zookeeper.md)。
+- 如果你想启用控制面 Nacos 服务发现,请参考:[Nacos 
部署教程](https://github.com/api7/apisix-seed/blob/main/docs/en/latest/nacos.md)。



[apisix] branch release/3.1 updated: Update observe-your-api.md (#8635)

2023-01-09 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch release/3.1
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/release/3.1 by this push:
 new 7b15f13d1 Update observe-your-api.md (#8635)
7b15f13d1 is described below

commit 7b15f13d19175ec1f2965c3cd3ef350a7ca5b30f
Author: James <53026852+makisekurisul...@users.noreply.github.com>
AuthorDate: Tue Jan 10 09:10:09 2023 +0800

Update observe-your-api.md (#8635)

fix English grammar error
---
 docs/en/latest/tutorials/observe-your-api.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/en/latest/tutorials/observe-your-api.md 
b/docs/en/latest/tutorials/observe-your-api.md
index 2e4b94529..24d2c7a58 100644
--- a/docs/en/latest/tutorials/observe-your-api.md
+++ b/docs/en/latest/tutorials/observe-your-api.md
@@ -199,7 +199,7 @@ You can also check two other plugins for metrics:
 
 The third is **tracing** or distributed tracing allows you to understand the 
life of a request as it traverses your service network and allows you to answer 
questions like what service has this request touched and how much latency was 
introduced. Traces enable you to further explore which logs to look at for a 
particular session or related set of API calls.
 
-[Zipkin](https://zipkin.io/) an open-source distributed tracing system. 
[APISIX plugin](https://apisix.apache.org/docs/apisix/plugins/zipkin) is 
supported to collect tracing and report to Zipkin Collector based on [Zipkin 
API specification](https://zipkin.io/pages/instrumenting.html).
+[Zipkin](https://zipkin.io/) is an open-source distributed tracing system. 
[APISIX plugin](https://apisix.apache.org/docs/apisix/plugins/zipkin) is 
supported to collect tracing and report to Zipkin Collector based on [Zipkin 
API specification](https://zipkin.io/pages/instrumenting.html).
 
 Here’s an example to enable the `zipkin` plugin on the specified route:
 



[apisix-website] branch master updated: docs:add two blogs (#1459)

2023-01-04 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 4a763b16dfb docs:add two blogs (#1459)
4a763b16dfb is described below

commit 4a763b16dfbe9081c7721ba117d3b5a4cc8063af
Author: 长龙 <362753...@qq.com>
AuthorDate: Thu Jan 5 14:47:35 2023 +0800

docs:add two blogs (#1459)

* docs:add two blogs
---
 .../blog/2022/12/27/apisix-ingress-with-Flagger.md | 407 +
 .../2022/12/27/apisix-ingress-with-gatewayapi.md   | 151 
 2 files changed, 558 insertions(+)

diff --git a/blog/zh/blog/2022/12/27/apisix-ingress-with-Flagger.md 
b/blog/zh/blog/2022/12/27/apisix-ingress-with-Flagger.md
new file mode 100644
index 000..86303cf1689
--- /dev/null
+++ b/blog/zh/blog/2022/12/27/apisix-ingress-with-Flagger.md
@@ -0,0 +1,407 @@
+---
+title: "APISIX Ingress + Flagger 实现顺滑的金丝雀发布"
+author: "谭恒亮"
+authorURL: "https://github.com/Gallardot";
+authorImageURL: "https://github.com/Gallardot.png";
+keywords: 
+- Apache APISIX
+- Ingress
+- Ingress controller
+- 金丝雀
+- Flagger
+description: 通过 Apache APISIX 和 Flagger 的整合,实现了非常顺滑的金丝雀发布。
+tags: [Ecosystem]
+---
+
+> 通过 Apache APISIX 和 Flagger 的整合,实现了非常顺滑的金丝雀发布。
+
+
+
+> 作者:谭恒亮,Github ID: Gallardot。开源项目爱好者,CNCF Chaos Mesh 项目 Maintainer,CNCF 
KubeVela、Apache APISIX、CNCF Flagger、CNCF Argo Rollouts 等项目 
Contributor。目前在小鹏汽车任职基础架构研发专家。
+
+在日常的项目开发过程中时,我们时常会面临服务变更的挑战,为了不影响用户体验,我们往往尽可能需要规避服务不可用的风险。因此,持续交付便应运而生,其被接受为一种企业软件实践,并且是完善的持续集成原则的自然演变。
+
+然而,持续部署仍然非常罕见,这可能是由于管理的复杂性以及担心部署失败会影响系统可用性。在整个持续交付体系中,金丝雀发布或许是最为经典的一个场景。基于此,我们能够很快发现“不健康”和“有问题”的服务,并且可以毫不费力地回滚到上一个版本。
+
+金丝雀发布也称“灰度发布”。通常来讲,在原有版本可用的情况下,同时发布部署一个新版本应用作为“金丝雀”,其目的是为了测试新版本的性能和表现,在保障整体系统稳定的前提下,尽早发现和及时调整。
+
+金丝雀发布并非黑即白的发布方式,它能够缓慢地将特定百分比的流量引导至一小部分用户。若验证没有问题,再推广到全部用户,并逐步淘汰旧版本,以降低生产环境引入新功能带来的风险。
+
+本文将介绍如何通过 Apache APISIX Ingress 和 Flagger 实现顺滑的金丝雀发布,从而提高发布效率,降低发布风险。
+
+## 项目介绍
+
+### Apache APISIX Ingress
+
+Apache APISIX Ingress 使用 Apache APISIX 作为数据面代理的 Kubernetes Ingress controller 
实现,提供了负载均衡、动态上游、金丝雀发布、精细化路由、限流限速、服务降级、服务熔断、身份认证、可观测性等数百项功能。目前已被包括 
Zoom、腾讯云、驾考宝典、地平线、欧洲哥白尼参考系统等国内外公司和组织采用。
+
+### Flagger
+
+Flagger 是一个 CNCF 云原生计算基金会项目,是 GitOps 工具 Flux 系列的一部分。最近 CNCF 云原生计算基金会也宣布了 Flux 
正式毕业,很好地表明了云原生技术当前的成功与光明前景。作为一种渐进式交付工具,Flagger 可自动执行在 Kubernetes 
上运行的应用程序的发布过程。它通过在衡量分析指标和运行一致性测试的同时逐渐将流量转移到新版本来降低在生产中引入新软件版本的风险。
+
+经过 Apache APISIX 和 Flux 两个社区的合作与努力,Flagger 在近期也发布了 v1.27.0 版本,支持使用 Apache 
APISIX Ingress 和 Flagger 进行自动化的金丝雀发布。
+
+![金丝雀发布流程](https://static.apiseven.com/2022/12/26/63a9a47945eda.png)
+
+下文将通过实践,一步步为大家展示下这个顺滑的金丝雀发布过程。
+
+## 金丝雀发布准备环节
+
+### 环境与组件准备
+
+首先需要一个 v1.19 或更新版本的 Kubernetes 集群,你可以通过 [kind](https://kind.sigs.k8s.io/) 进行安装。
+
+然后使用 Helm V3 来安装 Apache APISIX 和 Apache APISIX Ingress Controller,具体操作如下所示:
+
+```bash
+helm repo add apisix https://charts.apiseven.com
+kubectl create ns apisix
+
+
+
+helm upgrade -i apisix apisix/apisix --version=0.11.3 \
+--namespace apisix \
+--set apisix.podAnnotations."prometheus\.io/scrape"=true \
+--set apisix.podAnnotations."prometheus\.io/port"=9091 \
+--set apisix.podAnnotations."prometheus\.io/path"=/apisix/prometheus/metrics \
+--set pluginAttrs.prometheus.export_addr.ip=0.0.0.0 \
+--set pluginAttrs.prometheus.export_addr.port=9091 \
+--set pluginAttrs.prometheus.export_uri=/apisix/prometheus/metrics \
+--set pluginAttrs.prometheus.metric_prefix=apisix_ \
+--set ingress-controller.enabled=true \
+--set ingress-controller.config.apisix.serviceNamespace=apisix
+```
+
+完成后,在 apisix namespace 中安装 Flagger 和 Prometheus 附加组件。
+
+```bash
+helm repo add flagger https://flagger.app
+
+
+
+helm upgrade -i flagger flagger/flagger \
+--namespace apisix \
+--set prometheus.install=true \
+--set meshProvider=apisix
+```
+
+注意,如需使用自建 prometheus 或者 prometheus operator,可以自行搜索相关文章进行修改。
+
+### 初始化应用
+
+Flagger 可以作用于 Kubernetes 的 deployment 以及其他的 workload,也可以和 HPA 
结合在一起工作。它将会创建一系列的对象(比如 Kubernetes deployments、ClusterIP services 和 
ApisixRoute)。这些对象可以将应用暴露到集群外提供服务,并用于金丝雀发布过程的分析和发布。
+
+首先使用 `kubectl create ns test` 命令来新建一个 namespace,这里我们将其命名为 `test`。然后通过 `kubectl 
apply -k https://github.com/fluxcd/flagger//kustomize/podinfo?ref=main` 命令,新建一个 
deployment 和 HPA,这里使用 Flagger 官方示例程序。
+
+接下来可通过 `helm upgrade -i flagger-loadtester flagger/loadtester \`
+
+`--namespace=test` 指令来部署 Flagger 的负载测试服务,用于在金丝雀发布期间产生流量时,方便对其进行分析。
+
+此时,创建 Apache APISIX 的`ApisixRoute`,Flagger 将会引用该资源,并且生成金丝雀版本的 Apache APISIX 
Ingress 的`ApisixRoute`,具体可参考下方示例(示例中的`app.example.com`可以替换成你的实际域名)。
+
+```yaml
+apiVersion: apisix.apache.org/v2
+kind: ApisixRoute
+metadata:
+  name: podinfo
+  namespace: test
+spec:
+  http:
+- backends:
+- serviceName: podinfo
+  servicePort: 80
+  match:
+hosts:
+  - app.example.com
+methods:
+  - GET
+path

[apisix-website] branch master updated: docs: add APISIX 3.1.0 release blog (#1461)

2022-12-29 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new d0a6c4752e3 docs: add APISIX 3.1.0 release blog (#1461)
d0a6c4752e3 is described below

commit d0a6c4752e3fc7ae746cfc4b7fbbdf7f439eab1a
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Fri Dec 30 11:15:09 2022 +0800

docs: add APISIX 3.1.0 release blog (#1461)

* docs: add APISIX 3.1.0 release blog

* update Lint comments

* update comments and fix details

* update title details
---
 .../blog/2022/12/30/release-apache-apisix-3.1.0.md | 220 +
 .../blog/2022/12/30/release-apache-apisix-3.1.0.md | 213 
 2 files changed, 433 insertions(+)

diff --git a/blog/en/blog/2022/12/30/release-apache-apisix-3.1.0.md 
b/blog/en/blog/2022/12/30/release-apache-apisix-3.1.0.md
new file mode 100644
index 000..23a0e109faa
--- /dev/null
+++ b/blog/en/blog/2022/12/30/release-apache-apisix-3.1.0.md
@@ -0,0 +1,220 @@
+---
+title: "Release Apache APISIX 3.1.0"
+authors:
+  - name: "Zexuan Luo"
+title: "Author"
+url: "https://github.com/spacewander";
+image_url: "https://github.com/spacewander.png";
+  - name: "Sylvia"
+title: "Technical Writer"
+url: "https://github.com/SylviaBABY";
+image_url: "https://avatars.githubusercontent.com/u/39793568?v=4";
+keywords: 
+- Apache APISIX
+- security
+- Custom plugin
+- gRPC
+- Consul
+description: Apache APISIX 3.1.0 is officially released! This version brings a 
lot of functional support on the security level and adds a built-in debugging 
plugin, to optimize the experience of using APISIX.
+tags: [Community]
+---
+
+> Apache APISIX 3.1.0 is officially released! This version brings a lot of 
functional support on the security level and adds a built-in debugging plugin, 
to optimize the experience of using APISIX.
+
+
+
+After a month, a new version is here. This time APISIX 3.1.0 is the first new 
version since the big 3.0 release. As always, in the new era of 3.x, we present 
you with more new features in each version.
+
+This release, 3.1.0, adds support for encrypted storage of plugin 
configurations and storage on external security services, focusing on enabling 
users to use their configurations more securely and with greater confidence. On 
top of this, we have also introduced several new features designed to optimize 
your experience with APISIX.
+
+## New feature: encrypted storage of plugin configuration
+
+The new version supports encrypted storage of plugin-specific fields in etcd.
+
+In previous versions, APISIX provided a `key_encrypt_salt` configuration item 
to support encryption of SSL keys stored inside etcd to avoid storing private 
key data in plaintext.
+
+After all, for sensitive data such as private keys, one less place to store 
plaintext can provide more peace of mind. So for other equally sensitive 
configurations, such as the secret in the `jwt-auth` plugin, can we also 
encrypt it to avoid storing it in plaintext in etcd?
+
+Version 3.1 extends the encrypted storage feature to other fields. With this 
feature, we can specify the fields that need to be encrypted on a particular 
plugin and then turn on encryption in the config.yaml file to avoid storing 
plaintext.
+
+As an example, we add the following token to the `jwt-auth` plugin.
+
+```lua
+ encrypt_fields = {"secret", "private_key"},
+```
+
+When we enable encryption of fields in `config.yaml`:
+
+```yaml
+apisix:
+data_encryption:
+enable: true
+keyring:
+- edd1c9f0985e76a2
+```
+
+Then the secret and private_key in the configuration of the `jwt-auth` plugin 
written to etcd will be stored encrypted. The configuration seen via `etcdctl 
get --prefix /` will be something like ""secret": "77+NmbYqNfN+oL..."" Instead 
of the original configuration information, this is the data.
+
+## New feature: storing sensitive information in an external security service
+
+In addition to storing sensitive information encrypted in etcd, there is also 
the option to dynamically retrieve sensitive information from another system 
instead of requiring it to be stored in APISIX's configuration store (e.g. 
etcd).
+
+In version 3.1, we introduced a feature called APISIX Secret, which allows 
users to store secret in APISIX through some key management services (Vault, 
etc.) and read it according to the key at the time of use, ensuring that the 
secret does not exist in plaintext throughout the platform.
+
+APISIX currently supports storing secret through the following methods.
+
+- Environment variables
+- HashiCorp Vault
+
+### Related examples
+
+Usin

[apisix-website] branch add-3.1.0-release-blog created (now d67a00f21d0)

2022-12-29 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch add-3.1.0-release-blog
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


  at d67a00f21d0 update Lint comments

No new revisions were added by this update.



[apisix] branch SylviaBABY-patch-1 created (now ac44c0e35)

2022-12-29 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


  at ac44c0e35 docs: update Contributing gift details

This branch includes the following new commits:

 new ac44c0e35 docs: update Contributing gift details

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[apisix] 01/01: docs: update Contributing gift details

2022-12-29 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git

commit ac44c0e354ace6623996564c138576a2ac122c65
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Thu Dec 29 17:37:15 2022 +0800

docs: update Contributing gift details
---
 CONTRIBUTING.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1c9ac1555..7f8434e63 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -144,7 +144,7 @@ If you have contributed to Apache APISIX, no matter it is a 
code contribution to
 
 ![Contributor gifts](https://static.apiseven.com/2022/12/29/63acfb2f208e1.png)
 
-If you are a **contributor in China**, you can [click this 
link](https://wj.qq.com/s2/11438041/7b07/) to supplement relevant information; 
If you are a **contributor outside of China**, you can click this [Google 
form](https://forms.gle/DhPL96LnJwuaHjHU7) to supplement relevant information. 
After filling in the form, please wait patiently. The community will handle it 
as soon as possible after receiving the information.
+Contributors can request gifts by filling out this [Google 
form](https://forms.gle/DhPL96LnJwuaHjHU7) or [QQ 
Form](https://wj.qq.com/s2/11438041/7b07/). After filling in the form, please 
wait patiently. The community needs some time to review submissions.
 
 ## Do you have questions about the source code?
 



[apisix-website] branch master updated: docs: update Lmabda blog tag (#1458)

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 7b7646943a9 docs: update Lmabda blog tag (#1458)
7b7646943a9 is described below

commit 7b7646943a9c5045b6df12560e17aadb7dab6a3d
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Thu Dec 29 15:45:42 2022 +0800

docs: update Lmabda blog tag (#1458)
---
 blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md 
b/blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md
index ff8370c8c04..6e21d13c2ad 100644
--- a/blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md
+++ b/blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md
@@ -10,7 +10,7 @@ keywords:
 - APISIX
 - Serverless
 description: 本文通过介绍了 Serverless 的相关内容,引出了一个好的网关在 Serverless 架构下的重要性。而 APISIX 
就是这样的一个网关。
-tags: [Case Studies]
+tags: [Ecosystem]
 ---
 
 > 本文通过介绍了 Serverless 的相关内容,引出了一个好的网关在 Serverless 架构下的重要性。而 APISIX 就是这样的一个网关。



[apisix-website] 01/01: docs: update Lmabda blog tag

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix-website.git

commit ed3faea42c8863b77b4e9f2a9204059fff3058e2
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Thu Dec 29 15:39:32 2022 +0800

docs: update Lmabda blog tag
---
 blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md 
b/blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md
index ff8370c8c04..6e21d13c2ad 100644
--- a/blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md
+++ b/blog/zh/blog/2022/12/16/amazonlambda-with-apisix.md
@@ -10,7 +10,7 @@ keywords:
 - APISIX
 - Serverless
 description: 本文通过介绍了 Serverless 的相关内容,引出了一个好的网关在 Serverless 架构下的重要性。而 APISIX 
就是这样的一个网关。
-tags: [Case Studies]
+tags: [Ecosystem]
 ---
 
 > 本文通过介绍了 Serverless 的相关内容,引出了一个好的网关在 Serverless 架构下的重要性。而 APISIX 就是这样的一个网关。



[apisix-website] branch SylviaBABY-patch-1 created (now ed3faea42c8)

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


  at ed3faea42c8 docs: update Lmabda blog tag

This branch includes the following new commits:

 new ed3faea42c8 docs: update Lmabda blog tag

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[apisix] branch master updated: docs: update Contributing details about gifts part (#8580)

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 7e4e9c541 docs: update Contributing details about gifts part (#8580)
7e4e9c541 is described below

commit 7e4e9c5413e630417cc550a6b5d3a9271c549794
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Thu Dec 29 14:34:26 2022 +0800

docs: update Contributing details about gifts part (#8580)

* docs: update Contributing details about gifts part

* update images

Co-authored-by: Keer 
---
 CONTRIBUTING.md | 17 -
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index bdefdbf22..1c9ac1555 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -19,17 +19,14 @@
 
 # Contributing to APISIX
 
-Firstly, thanks for your interest in contributing! I hope that this will be a
-pleasant first experience for you, and that you will return to continue
+Firstly, thanks for your interest in contributing! I hope that this will be a 
pleasant first experience for you, and that you will return to continue
 contributing.
 
 ## How to contribute?
 
-Most of the contributions that we receive are code contributions, but you can
-also contribute to the documentation or simply report solid bugs
-for us to fix.
+Most of the contributions that we receive are code contributions, but you can 
also contribute to the documentation or simply report solid bugs for us to fix. 
Nor is code the only way to contribute to the project. We strongly value 
documentation, integration with other project, and gladly accept improvements 
for these aspects.
 
- For new contributors, please take a look at issues with a tag called [Good 
first 
issue](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
 or [Help 
wanted](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).
+For new contributors, please take a look at issues with a tag called [Good 
first 
issue](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
 or [Help 
wanted](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).
 
 ## How to report a bug?
 
@@ -141,11 +138,13 @@ Once we've discussed your changes and you've got your 
code ready, make sure that
   Please take a look at `t/plugin/limit-conn.t` and 
`t/plugin/limit-conn2.t`.
 * For more details, see the [testing 
framework](https://github.com/apache/apisix/blob/master/docs/en/latest/internal/testing-framework.md)
 
-## Contributor T-shirt
+## Contributor gifts
 
-If you have contributed to Apache APISIX, no matter it is a code contribution 
to fix a bug or a feature request, or a documentation change, Congratulations! 
You are eligible to receive the very special Contributor T-shirt! It's always 
been the community effort that has made Apache APISIX be understood and used by 
more developers. Go ahead and fill out the [Contributors Submissions 
form](https://docs.google.com/forms/d/e/1FAIpQLSdXEpCs60UK49UlOGdBCQSXr7DYz3enyT4GJPKrYQmYfVLPKQ/viewform).
+If you have contributed to Apache APISIX, no matter it is a code contribution 
to fix a bug or a feature request, or a documentation change, Congratulations! 
You are eligible to receive the APISIX special gifts with a digital 
certificate! It's always been the community effort that has made Apache APISIX 
be understood and used by more developers.
 
-![Contributor 
T-shirt](https://static.apiseven.com/202108/1642392020136-19a7c07b-27de-4c29-9168-099532d2638f.jpg)
+![Contributor gifts](https://static.apiseven.com/2022/12/29/63acfb2f208e1.png)
+
+If you are a **contributor in China**, you can [click this 
link](https://wj.qq.com/s2/11438041/7b07/) to supplement relevant information; 
If you are a **contributor outside of China**, you can click this [Google 
form](https://forms.gle/DhPL96LnJwuaHjHU7) to supplement relevant information. 
After filling in the form, please wait patiently. The community will handle it 
as soon as possible after receiving the information.
 
 ## Do you have questions about the source code?
 



[apisix-website] branch master updated: docs:add a ingress blog (#1450)

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 9aa7bea86a1 docs:add a ingress blog (#1450)
9aa7bea86a1 is described below

commit 9aa7bea86a1e007f67f9d2b38d50620f4fb9d85b
Author: 长龙 <362753...@qq.com>
AuthorDate: Thu Dec 29 11:02:25 2022 +0800

docs:add a ingress blog (#1450)

* docs:add a ingress blog

* modify content
---
 .../12/15/how-support-ingress-custom-plugins.md| 241 +
 1 file changed, 241 insertions(+)

diff --git a/blog/zh/blog/2022/12/15/how-support-ingress-custom-plugins.md 
b/blog/zh/blog/2022/12/15/how-support-ingress-custom-plugins.md
new file mode 100644
index 000..f252c320745
--- /dev/null
+++ b/blog/zh/blog/2022/12/15/how-support-ingress-custom-plugins.md
@@ -0,0 +1,241 @@
+---
+title: "APISIX Ingress 如何支持自定义插件"
+author: "张晋涛"
+authorURL: "https://github.com/tao12345666333";
+authorImageURL: "https://github.com/tao12345666333.png";
+keywords: 
+- Kubernetes
+- APISIX Ingress
+- 云原生
+- APISIX
+- Plugin
+description: 本篇主要介绍了 Ingress 资源相关的语义,以及如何对 Ingress 资源进行能力的扩展。
+tags: [Ecosystem]
+---
+
+> 本篇主要介绍了 Ingress 资源相关的语义,以及如何对 Ingress 资源进行能力的扩展。
+
+
+
+> 作者:张晋涛,API7.ai 云原生技术专家,Apache APISIX PMC 成员,Apache APISIX Ingress Controller 
项目维护者。
+
+## Ingress 和 Ingress Controllers
+
+Kubernetes 中的 Ingress 是一种资源对象,用于定义如何从 Kubernetes 集群外访问到 Kubernetes 
集群内的服务,其中包含了具体的访问规则,通常情况下客户端使用 HTTP/HTTPS 协议进行访问。
+
+客户端可按照 Ingress 资源定义的规则,将客户端请求路由到 Kubernetes 集群中的服务或具体的 Pod 中。
+
+![3df3234c-7ae7-48de-8dbb-0449226e4f2e.png](https://static.apiseven.com/2022/12/14/63996e81521dc.png)
+
+以下是一个 Ingress 资源的示例:
+
+```yaml
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: apisix-gateway
+spec:
+  rules:
+  - host: apisix.apache.org
+http:
+  paths:
+  - backend:
+  service:
+name: apisix-gateway
+port:
+  number: 80
+path: /
+pathType: Exact
+```
+
+上述示例中包含了以下内容:
+
+* **metadata.name**:Ingress 资源的名称
+* **spec.rules[].host**:外部访问使用的域名
+* **spec.rules[].http.paths[].backend**:定义了 Kubernetes 集群中服务的相关信息
+* **spec.rules[].http.paths[].path**:定义了外部服务访问 Kubernetes 集群中服务时使用的路径
+* **spec.rules[].http.paths[].pathType**:定义了外部服务访问 Kubernetes 集群中服务时路径的匹配规则
+
+从上述内容可以看到,**Ingress 资源的语义是相对比较简单的。**
+
+Ingress 仅仅是 Kubernetes 中的一种资源定义,它本身不具备任何流量处理能力。要让 Ingress 资源生效,则必须要有 
controller 来处理这些 Ingress 资源,通常这样的 controller 我们称之为 Ingress controller。
+
+Ingress controller 会持续地监控或监听 Kubernetes 集群中 Ingress 资源的变化,并根据 Ingress 
资源中定义的规则,转换为其数据面中的代理规则,并由数据面来实际的承载流量。
+
+**在实际的生产环境中,客户端访问的需求是多种多样的。比如最常见的认证、路由重写等能力,通过 Ingress 
资源是无法直接进行描述的。那么这些需求要如何满足呢?**
+
+## Ingress-NGINX 如何支持扩展功能
+
+首先我以 Kubernetes 社区的 Ingress-NGINX controller 为例,介绍如何在其中使用扩展功能。
+
+在 Ingress-NGINX 项目中,可以为 Ingress 资源增加一些 Annotation 来描述其需要使用的扩展能力。比如使用如下配置便可开启 
cors 能力。
+
+```yaml
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  annotations:
+kubernetes.io/ingress.class: nginx
+nginx.ingress.kubernetes.io/enable-cors: "true"
+nginx.ingress.kubernetes.io/cors-allow-origin: 
https://foo.com,https://bar.com
+nginx.ingress.kubernetes.io/cors-allow-headers: x-foo-1,x-foo-2
+nginx.ingress.kubernetes.io/cors-allow-methods: GET,POST,PUT
+  name: nginx-ingress
+spec:
+  rules:
+  - host: kubernetes.github.io
+http:
+  paths:
+  - path: /ingress
+pathType: Exact
+backend:
+  service:
+name: nginx
+port:
+  number: 80
+```
+
+这种方式仅仅需要为 Ingress 资源添加 Annotations 的配置即可,相对简单。但需要注意,使用这种模式需要 Ingress-NGINX 
controller 已经完成了对该 Annotations 的完整支持,否则该配置是无效的。
+
+如果需要其他的一些 Ingress-NGINX controller 尚未实现的能力,则需要对其进行二次开发。
+
+## 在 APISIX Ingress 中使用插件
+
+相较于 Ingress-NGINX controller,APISIX Ingress 使用 APISIX 作为数据面,APISIX 是一个高性能的全动态 
API 网关。所有的配置变更都是动态进行的,无需重启,所以对业务流量不会造成任何影响。
+
+在 Apache APISIX Ingress 中可以通过使用插件,来满足用户各种流量处理的需求和具体场景。当前有 80+ 
插件开箱即用,当然用户也可以开发自定义插件来进行能力的扩展。
+
+![output.png](https://static.apiseven.com/2022/12/14/63996c4d6f23e.png)
+
+目前,在 Apache APISIX 中支持多种方式进行自定义插件的开发:
+
+* 使用 Lua 进行插件的开发,这类插件会在 APISIX 内部运行;
+* 使用其他语言进行插件的开发,这种机制叫作 Plugin Runner,利用该机制开发的插件属于 external-plugin。
+
+关于 APISIX 插件的开发,可参考官方文档:
+
+* [插件开发](https://apisix.apache.org/docs/apisix/plugin-develop/)
+* [External Plugin 开发](https://apisix.apache.org/docs/apisix/external-plugin/)
+
+了解了 APISIX 的插件开发模式后,接下来将介绍 3 种在 APISIX Ingress 中使用 Lua 语言开发插件的方式。
+
+### 方式一:纯 CRD 模式
+
+APISIX Ingress controller 支持自己设计的一套 CRD 规范,你可以直接在路由规则中开启插件(无论是内置插件还是自定义插件),例如:
+
+```yaml
+apiVersion: apisix.apache.org/v2beta3
+kind: ApisixRoute
+metadata:
+ name: httpbin-route
+spec:
+ http:
+ - name: rule1
+   match:
+ hosts:
+ - apisix.apache.org
+ paths:
+   - /apisix-ingress
+   backends:
+   - serviceName: apisix-gateway
+ se

[apisix] branch SylviaBABY-patch-1 updated (bd81a2eb3 -> 4a5eeb80e)

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


from bd81a2eb3 update images
 add 4a5eeb80e Update CONTRIBUTING.md

No new revisions were added by this update.

Summary of changes:
 CONTRIBUTING.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



[apisix] branch SylviaBABY-patch-1 updated (4f009477e -> bd81a2eb3)

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


from 4f009477e docs: update Contributing details about gifts part
 add bd81a2eb3 update images

No new revisions were added by this update.

Summary of changes:
 CONTRIBUTING.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)



[apisix] branch SylviaBABY-patch-1 created (now 4f009477e)

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


  at 4f009477e docs: update Contributing details about gifts part

This branch includes the following new commits:

 new 4f009477e docs: update Contributing details about gifts part

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[apisix] 01/01: docs: update Contributing details about gifts part

2022-12-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git

commit 4f009477e6a2a1489f292c3cb8da9583fbccc2e6
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Thu Dec 29 10:05:58 2022 +0800

docs: update Contributing details about gifts part
---
 CONTRIBUTING.md | 17 -
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index bdefdbf22..8b3510f68 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -19,17 +19,14 @@
 
 # Contributing to APISIX
 
-Firstly, thanks for your interest in contributing! I hope that this will be a
-pleasant first experience for you, and that you will return to continue
+Firstly, thanks for your interest in contributing! I hope that this will be a 
pleasant first experience for you, and that you will return to continue
 contributing.
 
 ## How to contribute?
 
-Most of the contributions that we receive are code contributions, but you can
-also contribute to the documentation or simply report solid bugs
-for us to fix.
+Most of the contributions that we receive are code contributions, but you can 
also contribute to the documentation or simply report solid bugs for us to fix. 
Nor is code the only way to contribute to the project. We strongly value 
documentation, integration with other project, and gladly accept improvements 
for these aspects.
 
- For new contributors, please take a look at issues with a tag called [Good 
first 
issue](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
 or [Help 
wanted](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).
+For new contributors, please take a look at issues with a tag called [Good 
first 
issue](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
 or [Help 
wanted](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).
 
 ## How to report a bug?
 
@@ -141,11 +138,13 @@ Once we've discussed your changes and you've got your 
code ready, make sure that
   Please take a look at `t/plugin/limit-conn.t` and 
`t/plugin/limit-conn2.t`.
 * For more details, see the [testing 
framework](https://github.com/apache/apisix/blob/master/docs/en/latest/internal/testing-framework.md)
 
-## Contributor T-shirt
+## Contributor gifts
 
-If you have contributed to Apache APISIX, no matter it is a code contribution 
to fix a bug or a feature request, or a documentation change, Congratulations! 
You are eligible to receive the very special Contributor T-shirt! It's always 
been the community effort that has made Apache APISIX be understood and used by 
more developers. Go ahead and fill out the [Contributors Submissions 
form](https://docs.google.com/forms/d/e/1FAIpQLSdXEpCs60UK49UlOGdBCQSXr7DYz3enyT4GJPKrYQmYfVLPKQ/viewform).
+If you have contributed to Apache APISIX, no matter it is a code contribution 
to fix a bug or a feature request, or a documentation change, Congratulations! 
You are eligible to receive the very special Contributor T-shirt or other 
gifts(with electronic certificate)! It's always been the community effort that 
has made Apache APISIX be understood and used by more developers.
 
-![Contributor 
T-shirt](https://static.apiseven.com/202108/1642392020136-19a7c07b-27de-4c29-9168-099532d2638f.jpg)
+![Contributor gifts](https://static.apiseven.com/2022/12/29/63acf56e4ccee.png)
+
+If you are a **contributor in China**, you can [click this 
link](https://wj.qq.com/s2/11438041/7b07/) to supplement relevant information; 
If you are a **contributor outside of China**, you can click this [Google 
form](https://forms.gle/DhPL96LnJwuaHjHU7) to supplement relevant information. 
After filling in the form, please wait patiently. The community will handle it 
as soon as possible after receiving the information.
 
 ## Do you have questions about the source code?
 



[apisix-website] branch master updated: docs:add Graphql&APISIX blog (#1452)

2022-12-25 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 05e8c9f1069 docs:add Graphql&APISIX blog (#1452)
05e8c9f1069 is described below

commit 05e8c9f1069259d48b2e3e200d7e0c776b846b72
Author: 长龙 <362753...@qq.com>
AuthorDate: Mon Dec 26 09:36:38 2022 +0800

docs:add Graphql&APISIX blog (#1452)

* docs:add Graphql&APISIX blog

* docs:add Graphql&APISIX blog
---
 blog/zh/blog/2022/12/16/what-is-graphql.md | 210 +
 1 file changed, 210 insertions(+)

diff --git a/blog/zh/blog/2022/12/16/what-is-graphql.md 
b/blog/zh/blog/2022/12/16/what-is-graphql.md
new file mode 100644
index 000..44751dc77c1
--- /dev/null
+++ b/blog/zh/blog/2022/12/16/what-is-graphql.md
@@ -0,0 +1,210 @@
+---
+title: "马斯克都不懂的 GraphQL,API 网关又能对其如何理解?"
+author: "罗泽轩"
+authorURL: "https://github.com/spacewander";
+authorImageURL: "https://github.com/spacewander.png";
+keywords: 
+- GraphQL
+- API
+- 开源
+- APISIX
+description: 本文介绍了什么是 GraphQL,以及 APISIX 是如何支持 GraphQL 的。
+tags: [Ecosystem]
+---
+
+> 本文介绍了什么是 GraphQL,以及 APISIX 是如何支持 GraphQL 的。
+
+
+
+上个月马斯克评论 Twitter App 滥用 RPC 后,与一些 Twitter 的技术主管发生了矛盾 —— 直言马斯克不懂技术。那这个马斯克都不懂的 
GraphQL 到底是什么?
+
+![image (3).png](https://static.apiseven.com/2022/12/16/639c101d512e2.png)
+
+## 什么是 GraphQL?它有多流行?
+
+GraphQL 是一套由 Facebook 在 2015 年发布的一套面向 API 的查询操作语言。相比于其他的 API 设计方式,GraphQL 
允许客户端根据事先约定的数据结构组建查询语句,由服务端解析这一语句并只返回所需的内容。这么一来,GraphQL 
在提供丰富性和灵活性的同时,避免了冗余数据带来的性能损耗。
+
+GraphQL 的这一特性,让它在需要跟许多复杂数据对象打交道的应用场景里大行其道,成为该环境下的不二之选。
+
+2018 年 GraphQL 完成了规范的制定工作,并推出了稳定版本。同年,Facebook 将 GraphQL 项目捐献给了 Linux 基金会下属的 
GraphQL 基金会。自那以后,GraphQL 已经在许许多多的开源项目和商业机构中落地。到目前为止,市面上已经有了多个 GraphQL 
的主流客户端实现。而服务端的实现遍布各大服务端编程语言,甚至连一些小众编程语言如 D 和 R 都有对应的实现。
+
+## GraphQL 的一些真实场景和挑战
+
+最为知名的采用 GraphQL 的例子,莫过于 GitHub 的 GraphQL API 了。
+
+在拥抱 GraphQL 之前,GitHub 提供了 REST API 来暴露千千万万托管项目所产生的丰富数据。GitHub 的 REST API 
是如此的成功,以致于它成为了人们设计 REST API 时竞相模仿的典范。
+
+然而随着数据对象的变多和对象内字段的变大,REST API 开始暴露出越来越多的弊端。在服务端,由于每次调用都会产生大量的数据,GitHub 
为了降低成本不得不对调用频率设置严格的限制。
+
+而在开发者这边,他们则不得不与这一限制做斗争。因为虽然单次调用会返回繁多的数据,但是绝大部分都是无用的。开发者要想获取某一特定的信息,往往需要发起多个查询,然后编写许多胶水代码把查询结果中有意义的数据拼接成所需的内容。在这一过程中,他们还不得不带上“调用次数”的镣铐。
+
+所以 GraphQL 的出现,立刻就让 GitHub 
[皈依](https://docs.github.com/en/graphql/overview/about-the-graphql-api#why-github-is-using-graphql)了。GitHub
 成为了 GraphQL 的使者保罗,为万千开发者传递福音。目前 GraphQL API 已经是 GitHub API 的首选。从[第一次宣布对 
GraphQL 的支持](https://github.blog/2016-09-14-the-github-graphql-api/)之后,GitHub 
每一年都会[发几篇关于 GraphQL 的文章](https://github.blog/?s=graphQL)。为了让开发者能够迁移到 GraphQL 
上来,GitHub 
专门写了个交互式查询应用,[开发者可以通过这个应用学习怎么编写](https://docs.github.com/en/graphql/overview/explorer%E3%80%82%E5%BC%80%E5%8F%91%E8%80%8
 [...]
+
+然而 GraphQL 并非灵丹妙药。就在最近,[GitHub 废弃自己 package API 的 GraphQL 
实现](https://github.blog/changelog/2022-08-18-deprecation-notice-graphql-for-packages/)。许多人也开始[热议
 GraphQL 
的一些缺点](https://honest.engineering/posts/why-use-graphql-good-and-bad-reasons)。
+
+GraphQL 的许多问题源自于它跟 HTTP 标准的结构差别较大,没办法简单地将 GraphQL 的一些概念映射到诸如 HTTP path/header 
这样的结构中。把 GraphQL 当作普通的 HTTP API 来处理,需要额外的开发工作。如此一来,开发者如果要管理自己的 GraphQL 
API,就必须采用支持 GraphQL 的 API 网关才行。
+
+## APISIX 现在对 GraphQL 的支持
+
+Apache APISIX 是一个动态、实时、高性能的 API 
网关,提供负载均衡、动态上游、灰度发布、精细化路由、限流限速、服务降级、服务熔断、身份认证、可观测性等数百项功能。作为 Apache 的顶级项目,APISIX 
一直致力于周边生态的扩展与跟进。
+
+APISIX 目前支持通过 GraphQL 的一些属性进行动态路由。通过该能力,我们可以只接受特定的 GraphQL 请求,或者让不同的 GraphQL 
转发到不同的上游。
+
+以下面的 GraphQL 语句为例:
+
+```graphql
+  query getRepo {
+  owner {
+  name
+  }
+  repo {
+  created
+  }
+  }
+```
+
+APISIX 会提取 GraphQL 以下三个属性,用在路由当中:
+
+* graphql_operation
+* graphql_name
+* graphql_root_fields
+
+在上面的 GraphQL 语句中:
+
+* `graphql_operation` 对应 `query`
+* `graphql_name` 对应 `getRepo`
+* `graphql_root_fields` 对应 `["owner", "repo"]`
+
+让我们来创建一个路由,展示下 APISIX 对 GraphQL 的精细化路由能力。
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/routes/1 \
+  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
+  {
+  "methods": ["POST"],
+  "uri": "/graphql",
+  "vars": [
+  ["graphql_operation", "==", "query"],
+  ["graphql_name", "==", "getRepo"],
+  ["graphql_root_fields", "has", "owner"]
+  ],
+  "upstream": {
+  "type": "roundrobin",
+  "nodes": {
+  "127.0.0.1:2022": 1
+  }
+  }
+  }'
+```
+
+接下来使用带有 GraphQL 语句的请求去访问:
+
+```shell
+curl -i -H 'content-type: application/graphql' \
+-X POST http://127.0.0.1:9080/graphql -d '
+query getRepo {
+owner {
+name
+}
+repo {
+   

[apisix] branch SylviaBABY-patch-1 updated (65dcf2592 -> 649628521)

2022-12-21 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


from 65dcf2592 sort alphabetically
 add 649628521 update comments

No new revisions were added by this update.

Summary of changes:
 README.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)



[apisix] branch SylviaBABY-patch-1 updated (26e3d2c73 -> 65dcf2592)

2022-12-20 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


from 26e3d2c73 add others
 add 65dcf2592 sort alphabetically

No new revisions were added by this update.

Summary of changes:
 README.md | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)



[apisix] branch SylviaBABY-patch-1 updated (9551d60f3 -> 26e3d2c73)

2022-12-20 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


from 9551d60f3 docs: update APISIX users
 add 26e3d2c73 add others

No new revisions were added by this update.

Summary of changes:
 README.md | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)



[apisix] 01/01: docs: update APISIX users

2022-12-20 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git

commit 9551d60f3805b961dc9f1cf83a3d2628ee32f161
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Wed Dec 21 15:13:50 2022 +0800

docs: update APISIX users
---
 README.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/README.md b/README.md
index 1ee2093e1..f7ffd9e89 100644
--- a/README.md
+++ b/README.md
@@ -224,6 +224,9 @@ A wide variety of companies and organizations use APISIX 
API Gateway for researc
 - VIVO
 - Sina Weibo
 - WPS
+- zoom
+- Horizon Robotics
+- Insigma
 
 ## Landscape
 



[apisix] branch SylviaBABY-patch-1 created (now 9551d60f3)

2022-12-20 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch SylviaBABY-patch-1
in repository https://gitbox.apache.org/repos/asf/apisix.git


  at 9551d60f3 docs: update APISIX users

This branch includes the following new commits:

 new 9551d60f3 docs: update APISIX users

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[apisix] branch master updated: docs: a consumer is identified by a `username` property, not `id` (#8528)

2022-12-16 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 9686c555c docs: a consumer is identified by a `username` property, not 
`id` (#8528)
9686c555c is described below

commit 9686c555c24cbdb979adfd9e3961d975b94cdb2a
Author: Ashing Zheng 
AuthorDate: Fri Dec 16 19:06:08 2022 +0800

docs: a consumer is identified by a `username` property, not `id` (#8528)
---
 docs/zh/latest/admin-api.md | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/docs/zh/latest/admin-api.md b/docs/zh/latest/admin-api.md
index d65bf59d8..4e658b924 100644
--- a/docs/zh/latest/admin-api.md
+++ b/docs/zh/latest/admin-api.md
@@ -726,12 +726,12 @@ Consumer 资源请求地址:/apisix/admin/consumers/{username}
 
 ### 请求方法 {#consumer-request-methods}
 
-| 名称   | 请求 URI  | 请求 body  | 描述 |
-| -- |  | - |  |
-| GET| /apisix/admin/consumers  | 无| 获取资源列表。 |
-| GET| /apisix/admin/consumers/{id} | 无| 获取资源。 |
-| PUT| /apisix/admin/consumers  | {...} | 创建资源。 |
-| DELETE | /apisix/admin/consumers/{id} | 无| 删除资源。 |
+| 名称   | 请求 URI   | 请求 body | 描述  |
+| -- | -- | - | - |
+| GET| /apisix/admin/consumers| 无| 获取资源列表。|
+| GET| /apisix/admin/consumers/{username} | 无| 获取资源。|
+| PUT| /apisix/admin/consumers| {...} | 创建资源。|
+| DELETE | /apisix/admin/consumers/{username} | 无| 删除资源。|
 
 ### body 请求参数 {#consumer-body-request-methods}
 



[apisix] branch master updated: docs: fix prometheus link (#8513)

2022-12-14 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 69e4d0731 docs: fix prometheus link (#8513)
69e4d0731 is described below

commit 69e4d07315a4019368c9bd6bacce77fa6693cb81
Author: Ashing Zheng 
AuthorDate: Wed Dec 14 16:02:44 2022 +0800

docs: fix prometheus link (#8513)
---
 docs/zh/latest/terminology/plugin.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/zh/latest/terminology/plugin.md 
b/docs/zh/latest/terminology/plugin.md
index 64b24be6d..2301add94 100644
--- a/docs/zh/latest/terminology/plugin.md
+++ b/docs/zh/latest/terminology/plugin.md
@@ -77,7 +77,7 @@ local _M = {
 }
 ```
 
-并不是所有插件都有具体配置项,比如 `[prometheus](../plugins/prometheus.md)` 
下是没有任何具体配置项,此时可以使用一个空对象启用该插件。
+并不是所有插件都有具体配置项,比如 [prometheus](../plugins/prometheus.md) 
下是没有任何具体配置项,此时可以使用一个空对象启用该插件。
 
 如果一个请求因为某个插件而被拒绝,会有类似如下 `warn` 级别的日志:
 



[apisix-website] branch master updated: docs: add seewo-usercase-blog and change some usecase images (#1444)

2022-12-12 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 742d394bdf8 docs: add seewo-usercase-blog and change some usecase 
images (#1444)
742d394bdf8 is described below

commit 742d394bdf85991c157443e056daa1694dfa9dc4
Author: 长龙 <362753...@qq.com>
AuthorDate: Tue Dec 13 15:12:49 2022 +0800

docs: add seewo-usercase-blog and change some usecase images (#1444)

* docs:add-seewo-usercase-blog
---
 .../zh/blog/2022/09/30/huanbei-in-apache-apisix.md |   1 +
 .../2022/11/05/tencent-blueking-with-apisix.md |   1 +
 blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md |   1 +
 .../zh/blog/2022/12/13/seewo-with-apache-apisix.md | 130 +
 4 files changed, 133 insertions(+)

diff --git a/blog/zh/blog/2022/09/30/huanbei-in-apache-apisix.md 
b/blog/zh/blog/2022/09/30/huanbei-in-apache-apisix.md
index 2aa6fda0246..5a3b6fda756 100644
--- a/blog/zh/blog/2022/09/30/huanbei-in-apache-apisix.md
+++ b/blog/zh/blog/2022/09/30/huanbei-in-apache-apisix.md
@@ -11,6 +11,7 @@ keywords:
 - Spring Cloud
 description: 本文将介绍作为金融企业的还呗,为何弃用 Spring Cloud Gateway 而选择 APISIX 作为他们的网关。
 tags: [Case Studies]
+image: https://static.apiseven.com/2022/12/06/638ef1af90551.png
 ---
 
 > 本文将介绍作为金融企业的还呗,为何弃用 Spring Cloud Gateway 而选择 APISIX 作为他们的网关。
diff --git a/blog/zh/blog/2022/11/05/tencent-blueking-with-apisix.md 
b/blog/zh/blog/2022/11/05/tencent-blueking-with-apisix.md
index e161b7d504f..31e1729c9f1 100644
--- a/blog/zh/blog/2022/11/05/tencent-blueking-with-apisix.md
+++ b/blog/zh/blog/2022/11/05/tencent-blueking-with-apisix.md
@@ -15,6 +15,7 @@ keywords:
 - 架构
 description: 本文从蓝鲸网关的迭代过程和应用 APISIX 后的产品实践角度,为大家呈现了基于 APISIX 的网关应用实例。
 tags: [Case Studies]
+image: https://static.apiseven.com/2022/12/06/638ef9eda7617.png
 ---
 
 > 本文从蓝鲸网关的迭代过程和应用 APISIX 后的产品实践角度,为大家呈现了基于 APISIX 的网关应用实例。
diff --git a/blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md 
b/blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md
index 811e17cdf1a..adac794988e 100644
--- a/blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md
+++ b/blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md
@@ -15,6 +15,7 @@ keywords:
 - etcd
 description: 本文从应用 APISIX 后的调整与实践困难角度入手,为大家带来了 vivo 基于 APISIX 的企业实践细节。
 tags: [Case Studies]
+image: https://static.apiseven.com/2022/11/25/638055946ca56.png
 ---
 
 > 本文从应用 APISIX 后的调整与实践困难角度入手,为大家带来了 vivo 基于 APISIX 的企业实践细节。
diff --git a/blog/zh/blog/2022/12/13/seewo-with-apache-apisix.md 
b/blog/zh/blog/2022/12/13/seewo-with-apache-apisix.md
new file mode 100644
index 000..448eac4b17d
--- /dev/null
+++ b/blog/zh/blog/2022/12/13/seewo-with-apache-apisix.md
@@ -0,0 +1,130 @@
+---
+title: "聚焦人机交互智能应用领域,APISIX 在希沃网关的应用与实践"
+authors:
+  - name: "简海清"
+title: "Speaker"
+  - name: "苏钰"
+title: "Technical Writer"
+url: "https://github.com/SylviaBABY";
+image_url: "https://avatars.githubusercontent.com/u/39793568?v=4";
+keywords: 
+- APISIX
+- Ingress
+- 希沃
+- seewo
+description: 本文概述了希沃在网关部分的四次迭代,以及引入 APISIX 后的应用与实践。
+tags: [Case Studies]
+image: https://static.apiseven.com/2022/12/06/638ef9ed5d037.png
+---
+
+> 
视源股份(CVTE)自成立以来,依托在音视频技术、人机交互、应用开发、系统集成等电子产品领域的软硬件技术积累,建立了教育数字化工具及服务提供商希沃(seewo)、智慧协同平台
 MAXHUB 等多个业内知名品牌。其中希沃从 2012 年到 2021 年连续 10 年蝉联中国交互智能平板行业市占率桂冠,已成为名副其实的行业标杆企业。
+
+
+
+> 分享嘉宾简海清,视源股份运维负责人。
+
+为了应对日趋成熟及快速增长的业务现状,希沃又是如何在网关层面进行跟进的呢?
+
+**随着技术的飞速发展,在人际交互智能领域,业务需求也对架构迭代有了更高的要求。为了应对日趋成熟及快速增长的业务现状,希沃又是如何在网关层面进行跟进的呢?**
+
+## 网关往期迭代与痛点
+
+希沃网关的发展经历了四个版本的迭代。2013 年公司开始尝试互联网业务,那时候采用了 OpenResty + NGINX 
静态配置的方式搭建了最初的网关,开发人员通过 SCP(Secure 
Copy)进行发布。与此同时一个比较严重的问题就是,每次上线发布都需要运维人员的协助才能保证平滑上线。
+
+随着业务的发展和人员的扩充,2016 年我们开发了第二代发布系统和相关迭代网关。这次是基于 OpenResty 集成了 upsync 模块,同时配合 
Consul 来进行服务发现。第二代的系统解决了上一代开发人员无法独立发布上线的问题,但仍需要运维协助才能进行扩容。
+
+之后公司业务开始了迅猛发展,开始对网关以及产品的弹性扩缩能力有了更高的要求。2018 年我们基于 K8s 
开发了第三代系统。考虑到仍有部分应用遗留在数组机上,所以整个网关架构是在 K8s 上使用 Ingress NGINX 来当作第二层的网关,第一层网关仍是 
OpenResty 配合的双层网关架构。这种情况下虽然解决了前代发布扩容等自助问题,但又引入了新的麻烦。
+
+业务的快速扩充致使对于整体稳定性的要求越来越高。采用这种双层网关架构后,一层 NGINX reload 
和二层网关的路由变更,都会造成长连接断开。这对于一些长连接使用场景会影响较大,比如软件需要获取老师的授课状态时连接突然断开,状态获取中断从而影响授课。
+
+![output (4).png](https://static.apiseven.com/2022/12/13/6397db09f10c6.png)
+
+本身双层架构就会带来成本层面的一些增加。同时,从上图的网关流量拓扑图可以看到,除上述遗留问题外也还存在一些架构上的痛点:
+
+* 在双层网关架构下,不管是在第一层网关添加域名、修改配置或者添加一些特殊规则等,都需要 reload NGINX。
+* 
同时从整体架构来看,组件的配合对于流量控制层面来说比较差。尤其是目前我们的业务用户体量已达到千万级别,一旦客户端出现不可规避的异常,就有可能出现侵蚀服务端的情况,这种时候如果在网关层面没有一定的流量控制能力,对于后端来说将会造成非常严重的雪崩。
+
+因此,基于上述迭代遗留问题和架构痛点,在 2022 年我们引入了 APISIX 来解决上述问题。同时借助 APISIX,也加强了在网关层面对于流量的控制能力。
+
+但是在迁移 APISIX 的过程中,也会存在一些已知挑战。比如:
+
+* ⼀层 NGINX 域名多,定制化规则复杂。目前我们的业务中有 700+ 域名,同时还存在非常多的定制化配置,比如重定向、黑白名单等,这些都需要适配 
APISIX 的插件。
+* 由于历史遗留问题,⼀层 NGINX 和二层 Ingress 网关还是⼀对多的关系,对于后续的流量切换是不是会很复杂,这也是一个待解决问题。
+* 内部存在的双层 DNS 架构。目前 DNS 
解析主要用于处理公网和服务器内部的解析,所以对于后续的方案我们更希望是一个能方便回滚同时可以优化内网调用性能

[apisix-website] branch master updated: docs:add weekly report 20221204 (#1436)

2022-12-11 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new a2c1b9730f7 docs:add weekly report 20221204 (#1436)
a2c1b9730f7 is described below

commit a2c1b9730f7fb28d2356beded92ad6d9614f90c7
Author: 长龙 <362753...@qq.com>
AuthorDate: Mon Dec 12 11:30:00 2022 +0800

docs:add weekly report 20221204 (#1436)

* docs:add weekly report 20221204
---
 .../2022/11/28/a-poor-man\342\200\230s-api.md" |  0
 blog/zh/blog/2022/12/04/weekly-report-1204.md  | 88 ++
 2 files changed, 88 insertions(+)

diff --git "a/blog/zh/blog/2022/12/a-poor-man\342\200\230s-api.md" 
"b/blog/zh/blog/2022/11/28/a-poor-man\342\200\230s-api.md"
similarity index 100%
rename from "blog/zh/blog/2022/12/a-poor-man\342\200\230s-api.md"
rename to "blog/zh/blog/2022/11/28/a-poor-man\342\200\230s-api.md"
diff --git a/blog/zh/blog/2022/12/04/weekly-report-1204.md 
b/blog/zh/blog/2022/12/04/weekly-report-1204.md
new file mode 100644
index 000..5f66e88b225
--- /dev/null
+++ b/blog/zh/blog/2022/12/04/weekly-report-1204.md
@@ -0,0 +1,88 @@
+---
+title: "社区双周报 (11.21 - 12.04)"
+keywords: 
+- Apache APISIX
+- API 网关
+- 社区周报
+- 贡献者
+description: 云原生 API 网关 Apache APISIX 近两周新增了国密密码套件,域名解析优化,Admin API 通过 gRPC 
协议链接 ectd 等新功能。
+tags: [Community]
+image: https://static.apiseven.com/2022/12/08/6391537255a28.png
+---
+
+> 从 11.21 - 12.04,有 22 位开发者为 Apache APISIX 提交了 61 个 commits。感谢这些小伙伴为 Apache 
APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好!
+
+
+
+## 导语
+
+Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。
+
+“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 
Apache APISIX 社区中来。
+
+我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过!
+
+## 贡献者统计
+
+![本周贡献者名单](https://static.apiseven.com/2022/12/08/639153c8987d9.png)
+
+![本周新晋贡献者](https://static.apiseven.com/2022/12/08/639153c959ebe.png)
+
+## Good first issue
+
+### Issue #8413
+
+**链接**:https://github.com/apache/apisix/issues/8413
+
+**问题描述**:将限制计数插件与支持 tls/ssl 的 Redis Cluster 一起使用。
+
+## 近期功能特性亮点
+
+### Apache APISIX
+
+- [`proxy-mirror` 
插件支持指定镜像请求的前缀](https://github.com/apache/apisix/pull/8261)(贡献者:[Gallardot](https://github.com/Gallardot))
+- [`jwt-auth` 
支持隐藏客户端认证凭据](https://github.com/apache/apisix/pull/8206)(贡献者:[pixeldin](https://github.com/pixeldin))
+- [APISIX 支持 FIPS 
密码套件](https://github.com/apache/apisix/pull/8298)(贡献者:[kingluo](https://github.com/kingluo))
+- [`proxy-mirror` 
插件支持解析域名](https://github.com/apache/apisix/pull/8356)(贡献者:[spacewander](https://github.com/spacewander))
+- [`grpc-transcode` 插件支持在返回体中展示解析过的 
grpc-status-details-bin](https://github.com/apache/apisix/pull/7639)(贡献者:[monkeyDluffy6017](https://github.com/monkeyDluffy6017))
+- [域名解析时优先解析本地的 `/etc/hosts` 
文件](https://github.com/apache/apisix/pull/8270)(贡献者:[TenYearsIn](https://github.com/TenYearsIn))
+- [`proxy-rewrite` 插件支持显式设置和删除 
header](https://github.com/apache/apisix/pull/8336)(贡献者:[mscb402](https://github.com/mscb402))
+- 
[支持国密密码套件](https://github.com/apache/apisix/pull/8389)(贡献者:[spacewander](https://github.com/spacewander))
+- [支持将敏感字段存储在第三方服务中,如 
Vault](https://github.com/apache/apisix/pull/8390)(贡献者:[soulbird](https://github.com/soulbird)
 [kingluo](https://github.com/kingluo))
+- 
[支持敏感字段进行自动加密和解密,保护敏感字段](https://github.com/apache/apisix/pull/8403)(贡献者:[tzssangglass](https://github.com/tzssangglass))
+- [`syslog` 插件支持设置 log 
format](https://github.com/apache/apisix/pull/8279)(贡献者:[fatihusta](https://github.com/fatihusta))
+- [Admin API 通过 gRPC 协议连接 
etcd](https://github.com/apache/apisix/pull/8411)(贡献者:[spacewander](https://github.com/spacewander))
+
+### Apache APISIX Ingress
+
+- 
[在日志中隐藏密钥信息](https://github.com/apache/apisix-ingress-controller/pull/1480)(贡献者:[macmiranda](https://github.com/macmiranda))
+- [可以通过 annotation 
的方式来进行请求方法的控制](https://github.com/apache/apisix-ingress-controller/pull/1471)(贡献者:[incubator4](https://github.com/incubator4))
+- [允许在 APISIX Ingress 
与服务注册/发现中心进行集成](https://github.com/apache/apisix-ingress-controller/pull/1465)(贡献者:[tao12345666333](https://github.com/tao12345666333))
+
+Apache APISIX 的项目官网和 Github 上的 Issue 上已经积累了比较丰富的文档教程和使用经验,如果您遇到问题可以翻阅文档,用关键词在 
Issue 中搜索,也可以参与 Issue 上的讨论,提出自己的想法和实践经验。
+
+## 近期博文推荐
+
+- [译文 | A poor man's 
API](https://apisix.apache.org/zh/blog/2022/12/a-poor-man%E2%80%98s-api/)
+
+本文将展示如何在不编写任何代码的情况下,简单实现一个 API 实践。
+
+- [APISIX Ingress 是如何支持上千个 Pod 
副本的应用](https://apisix.apache.org/zh/blog/2022/11/25/how-apisix-support-1000-pods/)
+
+本文通过介绍 Kubernetes 中上千个 Pod 副本应用场景的解析,提出技术实现的困难。介绍 APISIX Ingress 
是如何解决这一难题的。
+
+- 
[微服务中的服务发现是什么](https://apisix.apache.org/zh/blog/2022/11/10/what-is-service-in-microservice-discovery/)
+
+本文通过服务发现的相关背景和 APISIX 对于服务发现的应用与实践,来介绍微服务中的服务发现内容。
+
+- [实践一年之久,vivo 如

[apisix-website] branch master updated: docs:add a translation blog (#1429)

2022-12-06 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 6a81543823d docs:add a translation blog (#1429)
6a81543823d is described below

commit 6a81543823d5b8e147dd4391693b7397ad484fc7
Author: 长龙 <362753...@qq.com>
AuthorDate: Wed Dec 7 15:03:48 2022 +0800

docs:add a translation blog (#1429)

* docs:add a translation blog
---
 .../blog/2022/12/a-poor-man\342\200\230s-api.md"   | 318 +
 1 file changed, 318 insertions(+)

diff --git "a/blog/zh/blog/2022/12/a-poor-man\342\200\230s-api.md" 
"b/blog/zh/blog/2022/12/a-poor-man\342\200\230s-api.md"
new file mode 100644
index 000..961a8adb7fb
--- /dev/null
+++ "b/blog/zh/blog/2022/12/a-poor-man\342\200\230s-api.md"
@@ -0,0 +1,318 @@
+---
+title: "译文 | A poor man's API"
+authors:
+  - name: "Nicolas Fränkel"
+title: "Author"
+url: "https://github.com/nfrankel";
+image_url: "https://github.com/nfrankel.png";
+  - name: "苏钰"
+title: "Technical Writer"
+url: "https://github.com/SylviaBABY";
+image_url: "https://avatars.githubusercontent.com/u/39793568?v=4";
+keywords: 
+- APISIX
+- API
+- REST API
+- 开源
+- PostgREST
+description: 本文将展示如何在不编写任何代码的情况下,简单实现一个 API 实践。
+tags: [Ecosystem]
+image: https://static.apiseven.com/2022/11/28/63841cb4ad10a.png
+---
+
+> 在 API 日渐流行的年代,越来越多的非技术人员也希望能从 API 的使用中获利,而创建一套成熟的 API 
方案需要时间成本和金钱两方面的资源加持。在这个过程中,你需要考虑模型、设计、REST 
原则等,而不仅仅是编写一行代码。如何打造一个具有高性价比且能持续迭代的产品,成为越来越多技术团队的目标。
+
+
+
+## 方案初试
+
+该解决方案主要使用的是 PostgreSQL 数据库,PostgreSQL 是一个开源 SQL 数据库。同时我们没有编写 REST API,而是使用了 
PostgREST 组件。
+
+[PostgREST](https://postgrest.org/) 是一个独立的 Web 服务器,它可以将 PostgreSQL 数据库直接转换为 
RESTful API。如果你想了解 PostgREST 
的使用方法,可以参考[入门指南](https://postgrest.org/en/stable/tutorials/tut0.html)文档,内容非常全面且开箱即用。
+
+接下来,我们将它应用到一个简单的示例中。
+
+### 具体步骤
+
+> 以下过程你可以在 [GitHub](https://github.com/ajavageek/poor-man-api) 上找到完整源代码。
+下方展示了一个通过 CRUD API 公开的 product 表。
+
+![表结构](https://static.apiseven.com/2022/12/02/63896834f0e22.png)
+
+由于我没有找到任何现成的 Docker 镜像,所以我单独创建了一份新的 Dockerfile。其中主要涉及依赖项的安装和参数化数据生成。
+
+***Dockerfile***
+
+```dockerfile
+FROM debian:bookworm-slim
+ARG POSTGREST_VERSION=v10.1.1
+ARG POSTGREST_FILE=postgrest-$POSTGREST_VERSION-linux-static-x64.tar.xz
+RUN mkdir postgrest
+WORKDIR postgrest
+ADD 
https://github.com/PostgREST/postgrest/releases/download/$POSTGREST_VERSION/$POSTGREST_FILE
 \
+.
+RUN apt-get update && \
+apt-get install -y libpq-dev xz-utils && \
+tar xvf $POSTGREST_FILE && \
+rm $POSTGREST_FILE
+```
+
+之后,Docker 镜像在  `/postgrest`  文件夹中会包含一个名为  `postgrest`  的可执行文件。这里可以通过 Docker 
Compose 来部署:
+
+***docker-compose.yml***
+
+```yaml
+version: "3"
+services:
+  postgrest:
+build: ./postgrest
+volumes:
+  - ./postgrest/product.conf:/etc/product.conf:ro
+ports:
+  - "3000:3000"
+entrypoint: ["/postgrest/postgrest"]
+command: ["/etc/product.conf"]
+depends_on:
+  - postgres
+  postgres:
+image: postgres:15-alpine
+environment:
+  POSTGRES_PASSWORD: "root"
+volumes:
+  - ./postgres:/docker-entrypoint-initdb.d:ro
+```
+
+接下来可以执行以下命令,查询前文提到的  `product`  表:
+
+```shell
+curl localhost:3000/product
+```
+
+得到如下结果反馈:
+
+```json
+[{"id":1,"name":"Stickers pack","description":"A pack of rad stickers to 
display on your laptop or wherever you feel like. Show your love for Apache 
APISIX","price":0.49,"hero":false},
+ {"id":2,"name":"Lapel pin","description":"With this \"Powered by Apache 
APISIX\" lapel pin, support your favorite API Gateway and let everybody know 
about it.","price":1.49,"hero":false},
+ {"id":3,"name":"Tee-Shirt","description":"The classic geek product! At a 
conference, at home, at work, this tee-shirt will be your best 
friend.","price":9.99,"hero":true}]
+```
+
+## 方案优化
+
+尽管上文提到的这套解决方案有效,但仍存在很大的改进空间。比如数据库用户不能更改数据、实际操作中每个人都可以访问相关数据等。这对于与产品相关的数据来说,可能不是一个大问题,但如果是医疗数据呢?
+
+PostgREST 
的官网[使用文档](https://postgrest.org/en/stable/admin.html)中提到了这一点,并明确提出:建议用户使用反向代理。
+
+提到反向代理,就不得不将目光转向到 API 网关行列。与 NGINX 不同,这里我选取了**开源领域非常活跃的 API 网关产品 — Apache 
APISIX**。APISIX 是一个动态、实时、高性能的 API 
网关,提供了负载均衡、动态上游、灰度发布、精细化路由、限流限速、服务降级、服务熔断、身份认证、可观测性等数百项功能。
+
+首先,我们可以在 Docker Compose 文件中补充 APISIX 相关信息,包括 APISIX 及其依赖的存储 etcd,而 etcd 主要用于存储 
APISIX 的路由、插件等配置信息。
+
+***docker-compose.yml***
+
+```yaml
+version: "3"
+services:
+  apisix:
+image: apache/apisix:2.15.0-alpine
+volumes:
+  - ./apisix/confi

[apisix] branch master updated (2ffce7d71 -> 7536c1169)

2022-12-05 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


from 2ffce7d71 fix(ai): remove BUILD_ROUTER event when ai module is 
unloaded (#8184)
 add 7536c1169 docs: added tutorial on how to configure mTLS between the 
client and APISIX (#8440)

No new revisions were added by this update.

Summary of changes:
 docs/zh/latest/config.json|   3 +-
 docs/zh/latest/mtls.md|   2 +
 docs/zh/latest/tutorials/client-to-apisix-mtls.md | 198 ++
 3 files changed, 202 insertions(+), 1 deletion(-)
 create mode 100644 docs/zh/latest/tutorials/client-to-apisix-mtls.md



[apisix-website] branch master updated: Adding December Global Community Meeting Signup Link (#1430)

2022-12-04 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 8026fe12a75 Adding December Global Community Meeting Signup Link 
(#1430)
8026fe12a75 is described below

commit 8026fe12a756b250768581dc2e63c86eabae1de3
Author: Nasasira <72880754+nas-as...@users.noreply.github.com>
AuthorDate: Mon Dec 5 04:02:44 2022 +0300

Adding December Global Community Meeting Signup Link (#1430)

* testing contributor workshop redirect link

* Adding November Global Community Meeting sign up link

* aAding Decembeer Global Community Meeting Signup Link
---
 .htaccess | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.htaccess b/.htaccess
index 8c3fae70755..d1f3af5fdc8 100644
--- a/.htaccess
+++ b/.htaccess
@@ -37,7 +37,7 @@ Options -Indexes
 Redirect 302 "/twitter" "https://twitter.com/ApacheAPISIX";
 Redirect 302 "/youtube" 
"https://www.youtube.com/channel/UCgPD18cMhOg5rmPVnQhAC8g";
 Redirect 302 "/slack" 
"https://join.slack.com/t/the-asf/shared_invite/zt-1g9ghsrol-v4hkkV8uKbGrDqRuPEq7fg";
-Redirect 302 "/community-meeting-signup" 
"https://docs.google.com/forms/d/1V56dS6cGS-F5FfKYLpGE5nVyBNfwhFMYsEMowSrK0Yc/";
+Redirect 302 "/community-meeting-signup" 
"https://docs.google.com/forms/d/1C9bIJ3eh0bQrBdv4rPGxHDUvX4giNQ_IRCmDDOQ2mgE/";
 Redirect 302 "/contributor-workshop-signup" 
"https://docs.google.com/forms/d/1LUER3R9-aFsUm7MhjVd_CM1xAGnkuWIe62prFH5aqAE/";
 
 



[apisix] branch master updated (1935d4b47 -> 2f042ee2e)

2022-12-01 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


from 1935d4b47 ci: use fixed os version of ubuntu (#8438)
 add 2f042ee2e docs: update admin api English doc (#8227)

No new revisions were added by this update.

Summary of changes:
 docs/en/latest/admin-api.md | 939 +++-
 1 file changed, 586 insertions(+), 353 deletions(-)



[apisix] branch master updated: docs: add kms env doc (#8419)

2022-11-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 2509ddc8e docs: add kms env doc (#8419)
2509ddc8e is described below

commit 2509ddc8e18e3428bbd51e4833fbd51c230b57bf
Author: soulbird 
AuthorDate: Tue Nov 29 13:44:56 2022 +0800

docs: add kms env doc (#8419)

* docs: add kms env doc

* update config.json
---
 docs/en/latest/config.json|   3 +-
 docs/en/latest/terminology/kms.md | 109 ++
 docs/zh/latest/config.json|   3 +-
 docs/zh/latest/terminology/kms.md | 109 ++
 4 files changed, 222 insertions(+), 2 deletions(-)

diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json
index 26ded3ecd..99404960c 100644
--- a/docs/en/latest/config.json
+++ b/docs/en/latest/config.json
@@ -38,7 +38,8 @@
 "terminology/router",
 "terminology/script",
 "terminology/service",
-"terminology/upstream"
+"terminology/upstream",
+"terminology/kms"
   ]
 },
 {
diff --git a/docs/en/latest/terminology/kms.md 
b/docs/en/latest/terminology/kms.md
new file mode 100644
index 0..56754bf84
--- /dev/null
+++ b/docs/en/latest/terminology/kms.md
@@ -0,0 +1,109 @@
+---
+title: KMS
+---
+
+
+
+## Description
+
+Secrets refer to any sensitive information required during the running process 
of APISIX, which may be part of the core configuration (such as the etcd's 
password) or some sensitive information in the plugin. Common types of Secrets 
in APISIX include:
+
+- username, the password for some components (etcd, Redis, Kafka, etc.)
+- the private key of the certificate
+- API key
+- Sensitive plugin configuration fields, typically used for authentication, 
hashing, signing, or encryption
+
+KMS allows users to store Secrets through some secrets management services 
(Vault, etc.) in APISIX, and read them according to the key when using them to 
ensure that **Secrets do not exist in plain text throughout the platform**.
+
+APISIX currently supports storing keys in environment variables.
+
+You use KMS functions by specifying format variables in the consumer 
configuration of the following plugins, such as `key-auth`.
+
+::: note
+
+If a configuration item is: `key: "$ENV://ABC"`, when the actual value 
corresponding to $ENV://ABC is not retrieved in KMS, the value of the key will 
be "$ENV://ABC" instead of `nil`.
+
+:::
+
+## Use environment variables to manage keys
+
+Using environment variables to manage keys means that you can save key 
information in environment variables, and refer to environment variables 
through variables in a specific format when configuring plugins. APISIX 
supports referencing system environment variables and environment variables 
configured through the Nginx `env` directive.
+
+### Usage
+
+```
+$ENV://$env_name/$sub_key
+```
+
+- env_name: environment variable name
+- sub_key: get the value of a property when the value of the environment 
variable is a JSON string
+
+ If the value of the environment variable is of type string, such as:
+
+```
+export JACK_AUTH_KEY=abc
+```
+
+It can be referenced as follows:
+
+```
+$ENV://JACK_AUTH_KEY
+```
+
+If the value of the environment variable is a JSON string like:
+
+```
+export JACK={"auth-key":"abc","openid-key": "def"}
+```
+
+It can be referenced as follows:
+
+```
+# Get the auth-key of the environment variable JACK
+$ENV://JACK/auth-key
+
+# Get the openid-key of the environment variable JACK
+$ENV://JACK/openid-key
+```
+
+### Example: use in key-auth plugin
+
+Step 1: Create environment variables before the APISIX instance starts
+
+```
+export JACK_AUTH_KEY=abc
+```
+
+Step 2: Reference the environment variable in the `key-auth` plugin
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/consumers \
+-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+"username": "jack",
+"plugins": {
+"key-auth": {
+"key": "$ENV://JACK_AUTH_KEY"
+}
+}
+}'
+```
+
+Through the above steps, the `key` configuration in the `key-auth` plugin can 
be saved in the environment variable instead of being displayed in plain text 
when configuring the plugin.
diff --git a/docs/zh/latest/config.json b/docs/zh/latest/config.json
index d6ebe8ca6..bb851457b 100644
--- a/docs/zh/latest/config.json
+++ b/docs/zh/latest/config.json
@@ -37,7 +37,8 @@
 "terminology/router",
 "terminology/script",
 "terminology/service",
-"terminology/upstream"
+"terminology/upstream&quo

[apisix-website] branch master updated: docs:add two ecosystem blogs (#1421)

2022-11-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 7757b7f9762 docs:add two ecosystem blogs (#1421)
7757b7f9762 is described below

commit 7757b7f97625037ec7f2ff0d664e0fd1de091823
Author: 长龙 <362753...@qq.com>
AuthorDate: Tue Nov 29 10:16:29 2022 +0800

docs:add two ecosystem blogs (#1421)

* docs:add two ecosystem blogs

* Update blog/zh/blog/2022/11/23/why-is-not-reload-hot-loaded-in-nginx.md

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>
---
 .../11/23/why-is-not-reload-hot-loaded-in-nginx.md | 106 ++
 .../2022/11/25/how-apisix-support-1000-pods.md | 409 +
 2 files changed, 515 insertions(+)

diff --git a/blog/zh/blog/2022/11/23/why-is-not-reload-hot-loaded-in-nginx.md 
b/blog/zh/blog/2022/11/23/why-is-not-reload-hot-loaded-in-nginx.md
new file mode 100644
index 000..55fa5268edd
--- /dev/null
+++ b/blog/zh/blog/2022/11/23/why-is-not-reload-hot-loaded-in-nginx.md
@@ -0,0 +1,106 @@
+---
+title: "为什么 NGINX 的 reload 不是热加载?"
+author: "刘维"
+authorURL: "https://github.com/monkeyDluffy6017";
+authorImageURL: "https://github.com/monkeyDluffy6017.png";
+keywords: 
+- 热加载
+- 开源
+- APISIX
+- NGINX
+description: 本文介绍了 APISIX 如何解决 NGINX 热加载带来的缺陷。
+tags: [Ecosystem]
+---
+
+> 本文介绍了 APISIX 如何解决 NGINX 热加载带来的缺陷。
+
+
+
+这段时间在 Reddit 看到一个讨论,为什么 NGINX 不支持热加载?乍看之下很反常识,作为世界第一大 Web 服务器,不支持热加载?难道大家都在使用的 
`nginx -s reload` 命令都用错了? 带着这个疑问,让我们开始这次探索之旅,一起聊聊热加载和 NGINX 的故事。
+
+## NGINX 相关介绍
+
+NGINX 是一个跨平台的开源 Web 服务器,使用 C 语言开发。据统计,全世界流量最高的前 1000 名网站中,有超过 40% 的网站都在使用 
NGINX 处理海量请求。
+
+NGINX 有什么优势,导致它从众多的 Web 服务器中脱颖而出,并一直保持高使用量呢?
+
+我觉得核心原因在于,NGINX 天生善于处理高并发,能在高并发请求的同时保持高效的服务。相比于同时代的其他竞争对手例如 Apache、Tomcat 
等,其领先的事件驱动型设计和全异步的网络 I/O 处理机制,以及极致的内存分配管理等众多优秀设计,将服务器硬件资源压缩到了极致。使得 NGINX 成为高性能 
Web 服务器的代名词。
+
+当然,除此之外还有一些其他原因,比如:
+
+- 高度模块化的设计,使得 NGINX 拥有无数个功能丰富的官方模块和第三方拓展模块。
+- 最自由的 BSD 许可协议,使得无数开发者愿意为 NGINX 贡献自己的想法。
+- 支持热加载,能保证 NGINX 提供 7x24h 不间断的服务。
+
+## 关于热加载
+
+大家期望的热加载功能是什么样的?我个人认为,首先应该是用户端无感知的,在保证用户请求正常和连接不断的情况下,实现服务端或上游的动态更新。
+
+那什么情况下需要热加载?在如今云原生时代下,微服务架构盛行,越来越多的应用场景有了更加频繁的服务变更需求。包括反向代理域名上下线、上游地址变更、IP 
黑白名单更新等,这些都和热加载息息相关。
+
+那么 NGINX 是如何实现热加载的?
+
+## NGINX 热加载的原理
+
+执行 `nginx -s reload` 热加载命令,就等同于向 NGINX 的 master 进程发送 HUP 信号。在 master 进程收到 HUP 
信号后,会依次打开新的监听端口,然后启动新的 worker 进程。
+
+此时会存在新旧两套 worker 进程,在新的 worker 进程起来后,master 会向老的 worker 进程发送 QUIT 信号进行优雅关闭。老的 
worker 进程收到 QUIT 信号后,会首先关闭监听句柄,此时新的连接就只会流进到新的 worker 进程中,老的 worker 
进程处理完当前连接后就会结束进程。
+
+![worker 进程](https://static.apiseven.com/2022/11/25/638039cf15879.png)
+
+从原理上看,NGINX 的热加载能很好地满足我们的需求吗?答案很可能是否定的,让我们来看下 NGINX 的热加载存在哪些问题。
+
+## NGINX 热加载的缺陷
+
+**首先,NGINX 频繁热加载会造成连接不稳定,增加丢失业务的可能性。**
+
+NGINX 在执行 reload 指令时,会在旧的 worker 
进程上处理已经存在的连接,处理完连接上的当前请求后,会主动断开连接。此时如果客户端没处理好,就可能会丢失业务,这对于客户端来说明显就不是无感知的了。
+
+**其次,在某些场景下,旧进程回收时间长,进而影响正常业务。**
+
+比如代理 WebSocket 协议时,由于 NGINX 不解析通讯帧,所以无法知道该请求是否为已处理完毕状态。即使 worker 进程收到来自 master 
的退出指令,它也无法立刻退出,而是需要等到这些连接出现异常、超时或者某一端主动断开后,才能正常退出。
+
+再比如 NGINX 做 TCP 层和 UDP 层的反向代理时,它也没法知道一个请求究竟要经过多少次请求才算真正地结束。
+
+这就导致旧 worker 进程的回收时间特别长,尤其是在直播、新闻媒体活语音识别等行业。旧 worker 
进程的回收时间通常能达到半小时甚至更长,这时如果再频繁 reload,将会导致 shutting down 进程持续增加,最终甚至会导致 NGINX 
OOM,严重影响业务。
+
+```shell
+# 一直存在旧 worker 进程:
+nobody 6246 6241 0 10:51 ? 00:00:00 nginx: worker process
+nobody 6247 6241 0 10:51 ? 00:00:00 nginx: worker process
+nobody 6247 6241 0 10:51 ? 00:00:00 nginx: worker process
+nobody 6248 6241 0 10:51 ? 00:00:00 nginx: worker process
+nobody 6249 6241 0 10:51 ? 00:00:00 nginx: worker process
+nobody 7995 10419 0 10:30 ? 00:20:37 nginx: worker process is shutting down  
<= here
+nobody 7995 10419 0 10:30 ? 00:20:37 nginx: worker process is shutting down
+nobody 7996 10419 0 10:30 ? 00:20:37 nginx: worker process is shutting down
+```
+
+从上述内容可以看到,通过 `nginx -s reload` 
方式支持的“热加载”,虽然在以往的技术场景中够用,但是在微服务和云原生迅速发展的今天,它已经捉襟见肘且不合时宜。
+
+如果你的业务变更频率是每周或者每天,那么 NGINX 这种 reload 还是满足你的需求的。但如果变更频率是每小时、每分钟呢?假设你有 100 个 
NGINX 服务,每小时 reload 一次的话,就要 reload 2400 次;如果每分钟 reload 一次,就是 864 万次。这显然是无法接受的。
+
+因此,我们需要一个不需要进程替换的 reload 方案,在现有 NGINX 进程内可以直接完成内容的更新和实时生效。
+
+## 在内存中直接生效的热加载方案
+
+在 Apache APISIX 诞生之初,就是希望来解决 NGINX 热加载这个问题的。
+
+Apache APISIX 是基于 NGINX + Lua 的技术栈,以  etcd 作为配置中心实现的云原生、高性能、全动态的微服务 API 
网关,提供负载均衡、动态上游、灰度发布、精细化路由、限流限速、服务降级、服务熔断、身份认证、可观测性等数百项功能。
+
+使用 APISIX 你不需要重启服务就可以更新配置,这意味着修改上游、路由、插件时都不用重启。既然是基于 NGINX,APISIX 又是如何摆脱 NGINX 
的限制实现完美热更新?我们先看下 APISIX 的架构。
+
+![APISIX 架构图](https://static.apiseven.com/2022/10/09/6341c29869628.png)
+
+通过上述架构图可以看到,之所以 APISIX 能摆脱 NGINX 的限制是因为它把上游等配置全部放到 APISIX Core 和 Plugin 
Runtime 中动态指定。
+
+以路由为例,NGINX 需要在配置文件内进行配置,每次更改都需要 reload 之后才能生效。而为了实现路由动态配置,Apache APISIX 在 
NGINX 配置文件内配置了单个 server,这个 server 中只有一个 location。我们把这个 location 
作为主入口,所有的请求都会经过这个 location,再由 APISIX Core 动态指定具体上游。因此 Apache APISIX 
的路由模块支持在运行时增减、修

[apisix] branch master updated: docs: update Upgrade Guide CN version (#8392)

2022-11-24 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 953253452 docs: update Upgrade Guide CN version (#8392)
953253452 is described below

commit 95325345227881865bb5ddf3275674663c7a9bc8
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Fri Nov 25 13:54:22 2022 +0800

docs: update Upgrade Guide CN version (#8392)
---
 .../latest/upgrade-guide-from-2.15.x-to-3.0.0.md   | 132 +++--
 1 file changed, 68 insertions(+), 64 deletions(-)

diff --git a/docs/zh/latest/upgrade-guide-from-2.15.x-to-3.0.0.md 
b/docs/zh/latest/upgrade-guide-from-2.15.x-to-3.0.0.md
index dfa78e089..20c47d9c9 100644
--- a/docs/zh/latest/upgrade-guide-from-2.15.x-to-3.0.0.md
+++ b/docs/zh/latest/upgrade-guide-from-2.15.x-to-3.0.0.md
@@ -28,7 +28,7 @@ description: 本文档将引导你了解如何升级 APISIX 版本。
 
 ## APISIX 的版本升级方式
 
-APISIX 的版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
+APISIX 的版本号遵循[语义化版本](https://semver.org/lang/zh-CN/)。
 
 升级到 APISIX 3.0.0 是一个重大的版本升级,我们建议您先升级到 2.15.x,然后再升级到 3.0.0。
 
@@ -36,7 +36,7 @@ APISIX 的版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
 
 ### 升级注意事项和重大更新
 
-在升级之前,请查看 [3.0.0-beta](./CHANGELOG.md#300-beta) 和 [3.0.0](./CHANGELOG.md#300) 
中的 Change 部分以了解 3.0.0 版本的不兼容的修改与重大更新。
+在升级之前,请查看 [3.0.0-beta](./CHANGELOG.md#300-beta) 和 [3.0.0](./CHANGELOG.md#300) 
中的 Change 部分,以了解 3.0.0 版本的不兼容的修改与重大更新。
 
  部署
 
@@ -45,28 +45,28 @@ APISIX 的版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
 目前,我们提供了:
 
 - 基于 debian/centos 的镜像,你可以在 
[DockerHub](https://hub.docker.com/r/apache/apisix/tags?page=1&ordering=last_updated)
 上找到它们
-- CentOS 7 和 CentOS 8 的 RPM 包,支持 amd64 和 arm64 架构,参考 [通过 RPM 
仓库安装](./installation-guide.md#通过-rpm-仓库安装)
-- Debian 11(bullseye) 的 DEB 包,支持 amd64 和 arm64 架构,参考 [通过 DEB 
仓库安装](./installation-guide.md#通过-deb-仓库安装)
+- CentOS 7 和 CentOS 8 的 RPM 包,支持 AMD64 和 ARM64 架构,可参考文章[通过 RPM 
仓库安装](./installation-guide.md#通过-rpm-仓库安装)
+- Debian 11(bullseye) 的 DEB 包,支持 AMD64 和 ARM64 架构,可参考文章[通过 DEB 
仓库安装](./installation-guide.md#通过-deb-仓库安装)
 
-3.0.0 对部署模式做了重大更新,具体如下:
+3.0.0 对部署模式进行了重大更新,具体如下:
 
-- 支持数据面与控制面分离的部署模式,请参考 
[Decoupled](../../en/latest/deployment-modes.md#decoupled)
-- 如果需要继续使用原来的部署模式,那么可以使用部署模式中的 `traditional` 模式,并且更新配置文件,请参考 
[Traditional](../../en/latest/deployment-modes.md#traditional)
-- 支持 Standalone 模式,需要更新配置文件,请参考 
[Standalone](../../en/latest/deployment-modes.md#standalone)
+- 支持数据面与控制面分离的部署模式,具体可参考 
[Decoupled](../../en/latest/deployment-modes.md#decoupled)
+- 如在使用中仍需沿用原来的部署模式,那么可以使用部署模式中的 `traditional` 模式,并且更新配置文件,具体可参考 
[Traditional](../../en/latest/deployment-modes.md#traditional)
+- 支持 Standalone 模式,需要更新配置文件,具体可参考 
[Standalone](../../en/latest/deployment-modes.md#standalone)
 
  依赖项
 
-如果你使用提供的二进制包(Debian 和 RHEL),或者镜像,则它们已经捆绑了 APISIX 所有必要的依赖项,你可以跳过本节。
+如果你使用提供的二进制包(Debian 和 RHEL)或者镜像,则它们已经捆绑了 APISIX 所有必要的依赖项,你可以跳过本节。
 
 APISIX 的一些特性需要在 OpenResty 中引入额外的 NGINX 模块。如果要使用这些功能,你需要构建一个自定义的 OpenResty 
发行版(APISIX-Base)。你可以参考 
[api7/apisix-build-tools](https://github.com/api7/apisix-build-tools) 
中的代码,构建自己的 APISIX-Base 环境。
 
-如果你希望 APISIX 运行在原生的 OpenResty 上,那么只支持 OpenResty 1.19.3.2 及以上的版本。
+如果你希望 APISIX 运行在原生的 OpenResty 上,这种情况下将只支持运行在 OpenResty 1.19.3.2 及以上的版本。
 
  迁移
 
 # 静态配置迁移
 
-APISIX 的配置方式是用自定义的 `conf/config.yaml` 中的内容覆盖默认的 
`conf/config-default.yaml`,如果某个配置项在 `conf/config.yaml` 中不存在,那么就使用 
`conf/config-default.yaml` 中的配置。在 3.0.0 中,我们调整了 `conf/config-default.yaml`。
+APISIX 的配置方式是用自定义的 `conf/config.yaml` 中的内容覆盖默认的 
`conf/config-default.yaml`,如果某个配置项在 `conf/config.yaml` 中不存在,那么就使用 
`conf/config-default.yaml` 中的配置。在 3.0.0 中,我们调整了 `conf/config-default.yaml` 
配置文件中的部分细节,具体内容如下。
 
 ## 移动配置项
 
@@ -74,9 +74,9 @@ APISIX 的配置方式是用自定义的 `conf/config.yaml` 中的内容覆盖
 
 调整内容:
 
-  * `config_center` 功能改由 `deployment` 下面的 `config_provider` 实现
-  * `etcd` 字段整体搬迁到 `deployment` 下面
-  * 以下的 Admin API 配置移动到 `deployment` 下面的 `admin` 字段
+  * `config_center` 功能改由 `deployment` 中的 `config_provider` 实现
+  * `etcd` 字段整体迁移到 `deployment` 中
+  * 以下的 Admin API 配置移动到 `deployment` 中的 `admin` 字段
 - admin_key
 - enable_admin_cors
 - allow_admin
@@ -93,9 +93,9 @@ APISIX 的配置方式是用自定义的 `conf/config.yaml` 中的内容覆盖
 
 调整内容:
 
-  * 去除 `apisix.ssl.enable_http2` 和 `apisix.ssl.listen_port`,使用 
`apisix.ssl.listen` 替代
+  * 去除 `apisix.ssl.enable_http2` 和 `apisix.ssl.listen_port`,使用 
`apisix.ssl.listen` 替代。
 
-  如果在 `conf/config.yaml` 中有这样的配置
+  如果在 `conf/config.yaml` 中有这样的配置:
 
   ```yaml
 ssl:
@@ -103,7 +103,7 @@ APISIX 的配置方式是用自定义的 `conf/config.yaml` 中的内容覆盖
   listen_port: 9443
   ```
 
-  在 3.0.0 中需要转换成
+  则在 3.0.0 版本中需要转换成如下所示:
 
   ```yaml
 ssl:
@@ -112,9 +112,9 @@ APISIX 的配置方式是用自定义的 `conf/config.yaml` 中的内容覆盖
   enable_http2: true
   ```
 
-  * 去除 `nginx_config.http.lua_shared_dicts`, 用 
`nginx_config.http.custom_lua_shared_dict` 替代,这个配置用于声明自定义插件的共享

[apisix] branch master updated: docs: add GM plugin EN doc to make website display normally (#8393)

2022-11-24 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 7ffa26447 docs: add GM plugin EN doc to make website display normally 
(#8393)
7ffa26447 is described below

commit 7ffa26447bf35c758f8eb82e8fcfc14d90e5812e
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Fri Nov 25 11:13:05 2022 +0800

docs: add GM plugin EN doc to make website display normally (#8393)

* docs: add GM plugin EN doc to make website display normally

* Delete main text only keep the opening remarks and Chinese link

* update Doc Lints details
---
 docs/en/latest/config.json   |  3 ++-
 docs/en/latest/plugins/gm.md | 31 +++
 2 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json
index ae6dd95d4..26ded3ecd 100644
--- a/docs/en/latest/config.json
+++ b/docs/en/latest/config.json
@@ -102,7 +102,8 @@
 "plugins/referer-restriction",
 "plugins/consumer-restriction",
 "plugins/csrf",
-"plugins/public-api"
+"plugins/public-api",
+"plugins/gm"
   ]
 },
 {
diff --git a/docs/en/latest/plugins/gm.md b/docs/en/latest/plugins/gm.md
new file mode 100644
index 0..37d4654ae
--- /dev/null
+++ b/docs/en/latest/plugins/gm.md
@@ -0,0 +1,31 @@
+---
+title: GM
+keywords:
+  - APISIX
+  - Plugin
+  - GM
+description: This article introduces the basic information and usage of the 
Apache APISIX `gm` plugin.
+---
+
+
+
+:::info
+The function usage scenarios introduced in this article are mainly in China, 
so this article only has a Chinese version temporarily. You can cilik 
[here](https://apisix.apache.org/zh/docs/apisix/plugins/gm/) for more details. 
If you are interested in this feature, welcome to translate this document.
+:::



[apisix-website] branch master updated: docs: add two weekly report blog (#1420)

2022-11-24 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new c6204c6a5e1 docs: add two weekly report blog (#1420)
c6204c6a5e1 is described below

commit c6204c6a5e18d0e45ac9763979612e03f33c6e87
Author: 长龙 <362753...@qq.com>
AuthorDate: Thu Nov 24 16:58:49 2022 +0800

docs: add two weekly report blog (#1420)

* docs: add two weekly report blog
---
 blog/zh/blog/2022/11/10/weekly-report-1110.md | 79 +++
 blog/zh/blog/2022/11/23/weekly-report-1123.md | 68 +++
 2 files changed, 147 insertions(+)

diff --git a/blog/zh/blog/2022/11/10/weekly-report-1110.md 
b/blog/zh/blog/2022/11/10/weekly-report-1110.md
new file mode 100644
index 000..75cb98748ac
--- /dev/null
+++ b/blog/zh/blog/2022/11/10/weekly-report-1110.md
@@ -0,0 +1,79 @@
+---
+title: "社区双周报 (10.16 - 11.4)"
+keywords: 
+- Apache APISIX
+- API 网关
+- 社区周报
+- 贡献者
+description: 云原生 API 网关 Apache APISIX 近两周新增上游轮询规则策略,支持 etcd 地址为 IPv6,处理上游 
header 时自定义 X-Forwarded-Pord 参数。APISIX Dashboard 修正连接中断时数据不同步的问题。
+tags: [Community]
+image: https://static.apiseven.com/2022/11/24/637ed736a343e.png
+---
+
+> 从 10.16 - 11.4,有 44 位开发者为 Apache APISIX 提交了 98 个 commits。感谢这些小伙伴为 Apache 
APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好!
+
+
+
+## 导语
+
+Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。
+
+“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 
Apache APISIX 社区中来。
+
+我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过!
+
+## 贡献者统计
+
+![本周贡献者名单](https://static.apiseven.com/2022/11/24/637ed74d4be75.png)
+
+![本周新晋贡献者](https://static.apiseven.com/2022/11/24/637ed7650c400.jpg)
+
+## Good first issue
+
+### Issue #8164
+
+**链接**:https://github.com/apache/apisix/issues/8164
+
+**问题描述**:为插件添加分类标签。
+
+### Issue #8122
+
+**链接**:https://github.com/apache/apisix/8122
+
+**问题描述**:为 `jwt-auth` 插件隐藏凭证,可避免在上游泄露 Token。
+
+### Issue #1416
+
+**链接**:https://github.com/apache/apisix-ingress-controller/issues/1416
+
+**问题描述**:在某些情况下,5000 端口可能会被其它进程占用,是否可以支持自定义端口。
+
+## 近期功能特性亮点
+
+- [添加上游轮询策略默认类型 
roundrobin](https://github.com/apache/apisix/pull/8180)(贡献者:[Hazel6869](https://github.com/Hazel6869))
+
+- [支持设置 etcd 地址为 IPv6 
格式](https://github.com/apache/apisix/pull/8245)(贡献者:[tzssangglass](https://github.com/tzssangglass))
+
+- [支持处理上游 header 时自定义 `X-Forwarded-Port` 
参数](https://github.com/apache/apisix/pull/8266)(贡献者:[biakecw](https://github.com/biakecw))
+
+- [修正 Dashboard etcd 
连接中断时数据不同步问题](https://github.com/apache/apisix-dashboard/pull/2650)(贡献者:[bzp2010](https://github.com/bzp2010))
+
+Apache APISIX 的项目官网和 Github 上的 Issue 上已经积累了比较丰富的文档教程和使用经验,如果您遇到问题可以翻阅文档,用关键词在 
Issue 中搜索,也可以参与 Issue 上的讨论,提出自己的想法和实践经验。
+
+## 近期博文推荐
+
+- [腾讯蓝鲸 API 网关如何借助 APISIX 
实现产品升级与业务完善](https://apisix.apache.org/zh/blog/2022/11/05/tencent-blueking-with-apisix/)
+
+本文从蓝鲸网关的迭代过程和应用 APISIX 后的产品实践角度,为大家呈现了基于 APISIX 的网关应用实例。
+
+- [从 Traefik 到 APISIX,汽车智能计算平台公司「地平线」在 Ingress Controller 
的探索和实践](https://apisix.apache.org/zh/blog/2022/10/28/apisix-ingress-with-horizon-ai/)
+
+地平线作为一家致力于汽车自动驾驶芯片的公司,在业务迭代中为何从 Traefik 切换到了 APISIX Ingress 去支撑业务?
+
+- [APISIX 3.0.0 
预览版现已发布!带来丰富功能与迭代细节](https://apisix.apache.org/zh/blog/2022/09/28/apache-apisix-3.0.0-beta-release/)
+
+Apache APISIX 3.0.0 预览版现已发布,为你整理了此次预览版上线的一些功能与调整细节。
+
+- [为什么说 Apache APISIX 是最好的 API 
网关?](https://apisix.apache.org/zh/blog/2022/09/27/why-apache-apisix-is-best-apigateway/)
+
+本文首发于 
[API7.ai](https://www.apiseven.com/blog/why-is-apache-apisix-the-best-api-gateway),从多个角度(在开发人员中的受欢迎程度、开源许可证、性能和整个生态系统)对比多个
 API 网关(Kong、Tyk、Gloo)。
diff --git a/blog/zh/blog/2022/11/23/weekly-report-1123.md 
b/blog/zh/blog/2022/11/23/weekly-report-1123.md
new file mode 100644
index 000..6ab0e5284e7
--- /dev/null
+++ b/blog/zh/blog/2022/11/23/weekly-report-1123.md
@@ -0,0 +1,68 @@
+---
+title: "社区双周报 (11.5 - 11.20)"
+keywords: 
+- Apache APISIX
+- API 网关
+- 社区周报
+- 贡献者
+description: 云原生 API 网关 Apache APISIX 近两周新增了 `proxy-mirror` 插件支持解析 host 
域名、`kafka-logger` 插件新增 brokers 属性,支持不同 broker 设置相同 host 等功能。
+tags: [Community]
+image: https://static.apiseven.com/2022/11/24/637ed683ec3e0.png
+---
+
+> 从 11.5 - 11.20,有 31 位开发者为 Apache APISIX 提交了 69 个 commits。感谢这些小伙伴为 Apache 
APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好!
+
+
+
+## 导语
+
+Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。
+
+“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 
Apache APISIX 社区中来。
+
+我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过!
+
+## 贡献者统计
+
+![本周贡献者名单](https://static.apiseven.com/2022/11/24/637ed683c50d5.png)
+
+![本周新晋贡献者](https://static.apiseven.com/2022/11/24/637ed68473f14.png)
+
+## Good first issue
+
+### Issue #8354
+
+**链接**:https://github.com/apache/apisix/issues/8354
+
+**问题描述**:为避免主机匹配争议,将

[apisix-website] branch master updated: blog: Add A poor man API post (#1416)

2022-11-21 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 684ee5b10f1 blog: Add A poor man API post (#1416)
684ee5b10f1 is described below

commit 684ee5b10f1a4c67423d42b59cdab4657ab9f085
Author: Nicolas Frankel 
AuthorDate: Tue Nov 22 02:06:14 2022 +0100

blog: Add A poor man API post (#1416)

* blog: Add A poor man API post

* Update according to review suggestion

Co-authored-by: Young 

Co-authored-by: Young 
---
 blog/en/blog/2022/11/23/poor-man-api.md | 364 
 1 file changed, 364 insertions(+)

diff --git a/blog/en/blog/2022/11/23/poor-man-api.md 
b/blog/en/blog/2022/11/23/poor-man-api.md
new file mode 100644
index 000..71ef6e159bb
--- /dev/null
+++ b/blog/en/blog/2022/11/23/poor-man-api.md
@@ -0,0 +1,364 @@
+---
+title: A poor man's API
+authors:
+  - name: Nicolas Fränkel
+title: Author
+url: https://github.com/nfrankel
+image_url: https://avatars.githubusercontent.com/u/752258
+keywords:
+  - API
+  - PostgreSQL
+  - PostgREST
+  - no code
+  - MVP
+description: "Creating a full-fledged API requires resources, both time and 
money. You need to think about the model, the design, the REST principles, 
etc., without writing a single line of code. Most of the time, you don't know 
whether it's worth it: you'd like to offer a Minimum Viable Product and iterate 
from there. I want to show how you can achieve it without writing a single line 
of code."
+tags: [Case Studies]
+image: https://blog.frankel.ch/assets/resources/poor-man-api/jar-g19c1e6973.jpg
+---
+
+> Creating a full-fledged API requires resources, both time and money. You 
need to think about the model, the design, the REST principles, etc., without 
writing a single line of code. Most of the time, you don't know whether it's 
worth it: you'd like to offer a Minimum Viable Product and iterate from there. 
I want to show how you can achieve it without writing a single line of code.
+
+
+
+
+https://blog.frankel.ch/poor-man-api/"; />
+
+
+## The solution
+
+The main requirement of the solution is to use the [PostgreSQL 
database](https://www.postgresql.org/). It's a well-established Open Source SQL 
database.
+
+Instead of writing our REST API, we use the PostgREST component:
+
+>PostgREST is a standalone web server that turns your PostgreSQL database 
directly into a RESTful API. The structural constraints and permissions in the 
database determine the API endpoints and operations.
+>
+>-- [PostgREST](https://postgrest.org/)
+
+Let's apply it to a simple use case. Here's a `product` table that I want to 
expose via a CRUD API:
+
+![Product table]https://blog.frankel.ch/assets/generated/poor-man-api/table.svg
+
+Note that you can find the whole source code on 
[GitHub](https://github.com/ajavageek/poor-man-api) to follow along.
+
+PostgREST's [Getting Started 
guide](https://postgrest.org/en/stable/tutorials/tut0.html) is pretty complete 
and works out of the box. Yet, I didn't find any ready-made Docker image, so I 
created my own:
+
+```dockerfile
+FROM debian:bookworm-slim   #1
+
+ARG POSTGREST_VERSION=v10.1.1   #2
+ARG POSTGREST_FILE=postgrest-$POSTGREST_VERSION-linux-static-x64.tar.xz #2
+
+RUN mkdir postgrest
+
+WORKDIR postgrest
+
+ADD 
https://github.com/PostgREST/postgrest/releases/download/$POSTGREST_VERSION/$POSTGREST_FILE
 \
+.   #3
+
+RUN apt-get update && \
+apt-get install -y libpq-dev xz-utils && \
+tar xvf $POSTGREST_FILE && \
+rm $POSTGREST_FILE  #4
+```
+
+1. Start from the latest Debian
+2. Parameterize the build
+3. Get the archive
+4. Install dependencies and unarchive
+
+The Docker image contains a `postgrest` executable in the `/postgrest` folder. 
We can "deploy" the architecture via Docker Compose:
+
+```yaml
+version: "3"
+services:
+  postgrest:
+build: ./postgrest   #1
+volumes:
+  - ./postgrest/product.conf:/etc/product.conf:ro#2
+ports:
+  - "3000:3000"
+entrypoint: ["/postgrest/postgrest"] #3
+command: ["/etc/product.conf"]   #4
+depends_on:
+  - postgres
+  postgres:
+image: postgres:15-alpine
+environment:
+  POSTGRES_PASSWORD: "root"
+volumes:
+  - ./postgres:/docker-entrypoint-initdb.d:ro   #5
+```
+
+1. Build the above `Dockerfile`
+2. Share the configuration file
+3. Run the `postg

[apisix-website] branch master updated: docs: add vivo usercase blog (#1415)

2022-11-21 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 05cb32fc9ca docs: add vivo usercase blog (#1415)
05cb32fc9ca is described below

commit 05cb32fc9ca17ea4f2eee3cbdf7c169b5439538b
Author: 长龙 <362753...@qq.com>
AuthorDate: Tue Nov 22 09:05:55 2022 +0800

docs: add vivo usercase blog (#1415)

* docs: add vivo usercase blog

* docs: add vivo usercase blog
---
 blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md | 147 +
 1 file changed, 147 insertions(+)

diff --git a/blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md 
b/blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md
new file mode 100644
index 000..811e17cdf1a
--- /dev/null
+++ b/blog/zh/blog/2022/11/13/vivo-with-apache-apisix.md
@@ -0,0 +1,147 @@
+---
+title: "实践一年之久,vivo 如何基于 APISIX 进行业务基础架构的演进"
+authors:
+  - name: "赵旭"
+title: "Speaker"
+  - name: "苏钰"
+title: "Technical Writer"
+url: "https://github.com/SylviaBABY";
+image_url: "https://avatars.githubusercontent.com/u/39793568?v=4";
+keywords: 
+- vivo
+- APISIX
+- Ingress
+- 网关
+- etcd
+description: 本文从应用 APISIX 后的调整与实践困难角度入手,为大家带来了 vivo 基于 APISIX 的企业实践细节。
+tags: [Case Studies]
+---
+
+> 本文从应用 APISIX 后的调整与实践困难角度入手,为大家带来了 vivo 基于 APISIX 的企业实践细节。
+
+
+
+> 分享嘉宾赵旭,vivo 互联网架构师,主要专注于基础架构研发方向。
+
+Apache APISIX 在这两年已经受到了国内很多知名企业的信赖,并纷纷开始在实际生产环境中应用 
APISIX。在这个过程中也包揽了很多不同行业的企业用户,比如金融行业的众安保险和安信证券,国产头部车企的吉利和小鹏汽车。其实在国产手机领域中,也有一些头部企业用户在使用,比如
 vivo。
+
+vivo 是从去年年中开始在业务生产中正式使用 APISIX 来替换之前传统的 NGINX。目前 APISIX 在 vivo 
业务架构的实践和场景支持上都表现得十分出色:
+
+* **高可用性**:上线至今没有出现重大故障,系统可用性超过 99.99%;
+
+* **高性能**:承载较大线上流量,服务于较多业务。线上目前转发流量接近百万级 QPS,目前仍处于持续增长的过程中;
+
+* **功能丰富**:基本覆盖了常见的 NGINX 代理场景,50% 的业务已经迁移到 APISIX 集群;
+
+* **支撑了云原生的建设和发展**:有效支撑和推动了公司容器化进展,支撑容器平台的物理机器已有万级规模,40% 的业务已经从物理机虚拟机迁移到容器平台。
+
+## 基于 APISIX 架构设计与定制调整
+
+![基于 APISIX 的内部架构调整](https://static.apiseven.com/2022/11/14/6371aaec16a68.png)
+
+从上图架构中可以看到,在网关层面我们已经实现了“四层+七层”的代理模式。其中四层网关我们是用 LVS+DPDK 
的方式来实现的,流量从外网进入四层网关后会转换到七层网关。而七层网关就是 APISIX 集群,目前这套 APISIX 
集群已经实现了容器、物理机、虚拟机等容器混合流量部署的接入功能。
+
+图中红色部分,则是我们正在使用的一些自研和开源项目,并借助这些项目实现整个流量转发体系。另外在架构中,我们还实现了 APISIX 集群拆分的管理功能。
+
+这套架构基于 APISIX 开源版本我们也进行了一些调整,主要是在控制面和数据面进行了更贴合内部业务的改造。
+
+### 配置管理与发布改造
+
+![配置管理与发布流程](https://static.apiseven.com/2022/11/14/6371aaebb4201.png)
+
+当业务从 APISIX 变更平台配置好相关数据后,变更平台会通过 RPC notify 的方式发送给 Manager API。之后 Manager API 
会通过 RPC notify 方式发送给部署在 APISIX 集群中的 apisix-agent。然后 APISIX 会通过 privilege 
特权进程,定时轮询 apisix-agent 去批量获取变更任务。
+
+之后 APISIX 通过共享队列的方式,由特权进程通知给各个实际的 worker 来实现内存上的变更。变更完成后,worker 
会将相关的配置信息进行一个落盘处理。当整个任务完成后, APISIX 会把相关结果通知传送给 apisix-agent 并传递给 Manager API。
+
+本身这套流程是一个异步查询,对于配置是否完全生效或者任务是否成功,都是通过轮询接口进行查询。可以看到上述流程中,我们对开源 APISIX 进行了如下的变动:
+
+**去掉 etcd 组件,自研实现了基于 APISIX 的 A6 配置管理系统。**
+
+之所以去掉 etcd 组件,是因为 etcd 本身还是一个偏内存的数据库,不适用于多维度资源的查询;同时对于我们本身业务而言,etcd 
的修改事件模式(主要是删除)具有不可重入性,一旦删除相关资源,就无法再进行重复性操作;最后就是考虑到单独增加一个系统组件(且处于核心地位),在大量 watch 
client 下的系统维护复杂度会大量增加,因此在我们的改造架构中删除了 etcd。
+
+**自研 apisix-agent 组件。**
+
+在引入 APISIX 之前,我们团队对于 OpenResty 和 Lua 的使用经验基本为 0。所以考虑到已经去掉 etcd 
的前提下,我们团队确实不具备能够改造 APISIX 核心底层技术的能力,所以通过自研 apisix-agent 组件,来简化现有 APISIX 
的一些能力,降低我们内部使用上的一些复杂度,从而达到复杂性和稳定性之间的权衡。
+
+**实现 APISIX 资源配置文件本地落盘。**
+
+这一点主要是我们在设计时,希望数据面可以独立运行而不是去依赖于一个控制中心,减少连带影响。这样的话,当 APISIX 
启动时就可以从配置中心全量拉取,也可以直接从本地落盘的文件目录进行拉取。在这种方案下,大大提高了数据面的独立性与系统的健壮性,同时对于问题的排查也带来了更清晰的路径展示。
+
+**增加“变更任务、结果回调”的上报机制。**
+
+整个流程的后半段,其实都是在执行这种上报机制。之所以制作这种逻辑,是为了保障像路由和上游等核心资源的时效性。一旦出现那种你以为资源下发成功但实际没成功的现状,就必然会导致一段时间的流量影响。这套逻辑就可以保证
 APISIX 上所有的 worker 都把需要的资源变动更新到了对应内存中。
+
+### 集群拆分管理改造
+
+![集群拆分管理流程](https://static.apiseven.com/2022/11/14/6371aaebf0ccc.png)
+
+APISIX 开源版本中是不支持集群管理功能的,基本上所有业务都共用一个 
etcd。但是对于我们这种中大型企业来说,业务场景与业务逻辑都十分复杂。在这种情况下如果使用这种大一统的集群方式,在业务运行过程中很容易出现不可控的场景。其次,随着业务复杂度的提升,有些业务就不可避免地会用到更复杂的插件,一旦数量变多,对于整个集群的性能也会造成一定影响。
+
+基于以上考虑,我们决定将 APISIX 
进行集群拆分化的管理,从而实现业务和服务集群的精细化管理。这样就可以实现不同的域名或业务通过映射管理等各种方式,分配给不同的 APISIX 集群,从而实现 
APISIX 集群上的配置隔离。同时还能控制故障域,对于业务复杂度也能起到一个有效的支撑。
+
+如果业务过于复杂,就可以给它单独分配集群,不会影响其他业务。有效降低了 APISIX 
非转发层面所造成集群负载,包括配置下发、高频容器节点变更以及健康检查所带来的负载影响。
+
+### 新增 Intel QAT HTTPS 加速卡
+
+根据国家工信部的相关要求,外网流量必须要走 HTTPS 协议。作为一个基于 TLS 的 HTTP 加密协议,HTTPS 的加解密过程对于 CPU 
的负担是比较大的。
+
+我们内部进行过一个统计,如果纯转发 HTTP 和 HTTPS 两种,同样的路由和其他相关配置齐平的情况下,HTTPS 只能承载大概 HTTP 的 1/8 到 
1/10 左右。因此 HTTPS 的加解密对于性能影响还是非常大的,因此我们重新编译了 OpenResty 模块。
+
+主要操作就是在 NGINX 代码中 Patch 了 Intel QAT 模块,通过 SSL 异步解密方式,将加解密的过程交给了 QAT 卡进行。从而释放了 
CPU,增大了单机 HTTPS 承载的 QPS。通过引入这套模块,单机 HTTPS 承载量提升了一倍左右。
+
+## 落地 APISIX 的问题与解决方案
+
+### 支持容器化,自研 Ingress 组件
+
+为了让这套架构符合公司的容器化发展,我们还自研了一套内部的 K8s-ingress 组件,这个组件的作用就是将 K8s 节点的变更通知到 APISIX 中。
+
+在之前公司内部已经利用 Calico 方案实现了容器与 IDC 机房的网络互通。在这种情况下,如何快速稳定地将变更通知到 APISIX 进行流量转发,是接入 
K8s 的重要一环。
+
+因此我们在调研过一些 K8s Ingress 实现方案之后,基于公司的业务场景和发展,最终选择了自研开发。主要考虑了以下几点:
+
+* **适配改造的异步推送配置变更机制**。前文介绍过的异步轮询机制其实

[apisix] branch master updated: docs: fix expose-api doc (#8367)

2022-11-20 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new da90b615c docs: fix expose-api doc (#8367)
da90b615c is described below

commit da90b615c7fb4b45a935e8957de66ddd967b71fc
Author: Fei Han <97138894+hf400...@users.noreply.github.com>
AuthorDate: Mon Nov 21 15:07:08 2022 +0800

docs: fix expose-api doc (#8367)

* Update expose-api.md

* Update expose-api.md
---
 docs/en/latest/tutorials/expose-api.md | 2 +-
 docs/zh/latest/tutorials/expose-api.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/en/latest/tutorials/expose-api.md 
b/docs/en/latest/tutorials/expose-api.md
index 18f016ff2..c81f9f200 100644
--- a/docs/en/latest/tutorials/expose-api.md
+++ b/docs/en/latest/tutorials/expose-api.md
@@ -111,7 +111,7 @@ curl "http://127.0.0.1:9180/apisix/admin/routes/1"; \
 After creating the Route, you can test the Service with the following command:
 
 ```
-curl -i -X GET "http://127.0.0.1:9080/get?foo1=bar1&foo2=bar2"; -H "Host: 
httpbin.org"
+curl -i -X GET "http://127.0.0.1:9080/get?foo1=bar1&foo2=bar2"; -H "Host: 
example.com"
 ```
 
 APISIX will forward the request to `http://httpbin.org:80/anything/foo?arg=10`.
diff --git a/docs/zh/latest/tutorials/expose-api.md 
b/docs/zh/latest/tutorials/expose-api.md
index 0f03f5374..c2886273a 100644
--- a/docs/zh/latest/tutorials/expose-api.md
+++ b/docs/zh/latest/tutorials/expose-api.md
@@ -114,7 +114,7 @@ curl "http://127.0.0.1:9180/apisix/admin/routes/1"; \
 在创建完成路由后,你可以通过以下命令测试路由是否正常:
 
 ```
-curl -i -X GET "http://127.0.0.1:9080/get?foo1=bar1&foo2=bar2"; -H "Host: 
httpbin.org"
+curl -i -X GET "http://127.0.0.1:9080/get?foo1=bar1&foo2=bar2"; -H "Host: 
example.com"
 ```
 
 该请求将被 APISIX 转发到 `http://httpbin.org:80/anything/foo?arg=10`。



[apisix-website] branch master updated: refactor: event poster card (#1414)

2022-11-17 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 450a43431b1 refactor: event poster card (#1414)
450a43431b1 is described below

commit 450a43431b1c295d545fbc498ce9ccf43428392b
Author: Young 
AuthorDate: Fri Nov 18 12:32:47 2022 +0800

refactor: event poster card (#1414)
---
 config/event-poster-card.json  | 18 ---
 website/src/components/EventPosterCard.tsx | 58 ++
 .../src/components/event-poster-card-schema.json   | 58 ++
 3 files changed, 108 insertions(+), 26 deletions(-)

diff --git a/config/event-poster-card.json b/config/event-poster-card.json
index cba63dbbed4..9f67da3982a 100644
--- a/config/event-poster-card.json
+++ b/config/event-poster-card.json
@@ -1,10 +1,16 @@
 {
+  "$schema": "../website/src/components/event-poster-card-schema.json",
   "show": true,
   "expire": "2022-11-20",
-  "image": "https://static.apiseven.com/2022/11/16/6374a2e12ff52.jpeg";,
-  "links": {
-"en": "",
-"zh": "https://mp.weixin.qq.com/s/qx9F483mILJrxW-Rd3Blag";
-  },
-  "width": 400
+  "width": 400,
+  "config": {
+"en": {
+  "disable": true
+},
+"zh": {
+  "image": "https://static.apiseven.com/2022/11/16/6374a2e12ff52.jpeg";,
+  "link": "https://mp.weixin.qq.com/s/qx9F483mILJrxW-Rd3Blag";,
+  "description": "直播预告|Apache APISIX x Apache EventMesh 在线 Meetup 来袭"
+}
+  }
 }
diff --git a/website/src/components/EventPosterCard.tsx 
b/website/src/components/EventPosterCard.tsx
index eb68cbb61b9..05f6b8f9df6 100644
--- a/website/src/components/EventPosterCard.tsx
+++ b/website/src/components/EventPosterCard.tsx
@@ -8,25 +8,35 @@ import useSessionStorage from 
'react-use/lib/useSessionStorage';
 import config from '../../../config/event-poster-card.json';
 import style from '../css/event-poster-card.module.scss';
 
+type CardConfig =
+  | {
+  image: string;
+  link: string;
+  description: string;
+  disable?: false;
+}
+  | {
+  disable: true;
+};
+
 interface EventPosterCardInfo {
   show: boolean;
   expire: string;
-  image: string;
-  links: { [key: string]: string } | 'string';
+  config: {
+en: CardConfig;
+zh: CardConfig;
+  };
   width: string | number;
 }
 
 const SHOW_STORE_KEY = 'SHOW_EVENT_ENTRY';
 
 const EventPosterCard: FC> = 
(props) => {
-  const { image, links, width } = props;
+  const { config: cardConfig, width } = props;
   const {
 i18n: { currentLocale },
   } = useDocusaurusContext();
-  const link = useMemo(
-() => (typeof links === 'string' ? links : links[currentLocale]),
-[currentLocale]
-  );
+  const currentConfig = useMemo(() => cardConfig[currentLocale], 
[currentLocale]);
   const [, setStoreShow] = useSessionStorage(SHOW_STORE_KEY, 'true');
 
   const [styles, api] = useSpring(() => ({
@@ -47,18 +57,21 @@ const EventPosterCard: FC> = (props
   }, []);
 
   const onClose = useCallback(
-async () =>
-  Promise.all(
-api.start({
-  to: {
-x: 500,
-opacity: 0,
-  },
-})
-  ).then(() => setStoreShow('false')),
-[api]
+async () => Promise.all(
+  api.start({
+to: {
+  x: 500,
+  opacity: 0,
+},
+  }),
+).then(() => setStoreShow('false')),
+[api],
   );
 
+  if (currentConfig?.disable === true) {
+return null;
+  }
+
   return (
 
   
@@ -69,8 +82,13 @@ const EventPosterCard: FC> = (props
   />
 
   
-  
-
+  
+
   
 
   );
@@ -82,7 +100,7 @@ const EventPosterCardWrapper: FC = () => {
   const expireTimestamp = new Date(expire).getTime();
 
   if (show && !storeShow && expireTimestamp > Date.now()) {
-return ;
+return )} />;
   }
 
   return null;
diff --git a/website/src/components/event-poster-card-schema.json 
b/website/src/components/event-poster-card-schema.json
new file mode 100644
index 000..85875716ced
--- /dev/null
+++ b/website/src/components/event-poster-card-schema.json
@@ -0,0 +1,58 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#";,
+  "type": "object",
+  "properties": {
+"show": {
+  "type": "boolean"
+},
+"expire": {
+  "type": "string"
+},
+"width": {
+  "

[apisix-docker] branch master updated: docs: update README (#380)

2022-11-17 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-docker.git


The following commit(s) were added to refs/heads/master by this push:
 new 0d0c786  docs: update README (#380)
0d0c786 is described below

commit 0d0c786f0bf8ea3de8311ef466087a769d2834be
Author: Fei Han <97138894+hf400...@users.noreply.github.com>
AuthorDate: Thu Nov 17 17:45:04 2022 +0800

docs: update README (#380)
---
 README.md | 106 ++
 1 file changed, 59 insertions(+), 47 deletions(-)

diff --git a/README.md b/README.md
index f4f24c3..9422572 100644
--- a/README.md
+++ b/README.md
@@ -17,14 +17,17 @@ In stand-alone mode, APISIX uses `apisix.yaml` as the 
configuration center to st
 
 You can start an APISIX container with stand-alone mode by the following 
command:
 
-```
-$ docker run -d --name apache-apisix -p 9080:9080 -e APISIX_STAND_ALONE=true 
apache/apisix
+```shell
+docker run -d --name apache-apisix \
+  -p 9080:9080 \
+  -e APISIX_STAND_ALONE=true \
+  apache/apisix
 ```
 
 Add Route and Plugin configuration to the running APISIX container:
 
-```
-$ docker exec -i apache-apisix sh -c 'cat > /usr/local/apisix/conf/apisix.yaml 
<<_EOC_
+```shell
+docker exec -i apache-apisix sh -c 'cat > /usr/local/apisix/conf/apisix.yaml 
<<_EOC_
 routes:
   -
 id: httpbin
@@ -46,6 +49,15 @@ plugin_configs:
 _EOC_'
 ```
 
+Test example:
+
+```shell
+curl http://127.0.0.1:9080/
+```
+
+```shell
+Hello APISIX
+```
 If you want to know more configuration examples, you can refer to 
[stand-alone](https://apisix.apache.org/docs/apisix/stand-alone).
 
 ### How to run APISIX using etcd as configuration center
@@ -56,22 +68,22 @@ The operation of APISIX also supports the use of etcd as 
the configuration cente
 
 1. Start etcd.
 
-```
-$ docker run -d \
-   --name etcd \
-   --net host \
-   -e ALLOW_NONE_AUTHENTICATION=yes \
-   -e ETCD_ADVERTISE_CLIENT_URLS=http://127.0.0.1:2379 \
-   bitnami/etcd:latest
+```shell
+docker run -d \
+  --name etcd \
+  --net host \
+  -e ALLOW_NONE_AUTHENTICATION=yes \
+  -e ETCD_ADVERTISE_CLIENT_URLS=http://127.0.0.1:2379 \
+  bitnami/etcd:latest
 ```
 
 2. Start APISIX.
 
-```
-$ docker run -d \
-   --name apache-apisix \
-   --net host \
-   apache/apisix
+```shell
+docker run -d \
+  --name apache-apisix \
+  --net host \
+  apache/apisix
 ```
 
  Solution 2
@@ -80,8 +92,8 @@ Before starting the APISIX container, we need to create a 
Docker virtual network
 
 1. Create a network and view the subnet address, then start etcd
 
-```
-$ docker network create apisix-network --driver bridge && \
+```shell
+docker network create apisix-network --driver bridge && \
 docker network inspect -v apisix-network && \
 docker run -d --name etcd \
   --network apisix-network \
@@ -94,57 +106,57 @@ docker run -d --name etcd \
 
 2. View the return result of the previous step, we can see the `subnet` 
address. Create a APISIX configuration file in the current directory. You need 
to set `allow_admin` to the `subnet` address obtained in step1.
 
-```
-$ cat << EOF > $(pwd)/config.yaml
-apisix:
-  allow_admin:
-- 0.0.0.0/0  # Please set it to the subnet address you obtained.
- # If not set, by default all IP access is allowed.
-etcd:
-  host:
-- "http://etcd:2379";
-  prefix: "/apisix"
-  timeout: 30
+```shell
+cat << EOF > $(pwd)/config.yaml
+deployment:
+  role: traditional
+  role_traditional:
+config_provider: etcd
+  admin:
+allow_admin:
+  - 0.0.0.0/0  # Please set it to the subnet address you obtained.
+  # If not set, by default all IP access is allowed.
+  etcd:
+host:
+  - "http://etcd:2379";
+prefix: "/apisix"
+timeout: 30
 EOF
 ```
 
 3. Start APISIX and reference the file created in the previous step.
 
-```
-$ docker run -d --name apache-apisix \
-   --network apisix-network \
-   -p 9080:9080 \
-   -v $(pwd)/config.yaml:/usr/local/apisix/conf/config.yaml \
-   apache/apisix
+```shell
+ docker run -d --name apache-apisix \
+  --network apisix-network \
+  -p 9080:9080 \
+  -p 9180:9180 \
+  -v $(pwd)/config.yaml:/usr/local/apisix/conf/config.yaml \
+  apache/apisix
 ```
 
-### Test example
+ Test example
 
 Check that APISIX is running properly by running the following command on the 
host.
 
 ```
-$ curl "http://127.0.0.1:9080/apisix/admin/services/"; \
+curl "http://127.0.0.1:9180/apisix/admin/services/"; \
 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1'
 ```
 
 The response indicates that apisix is running successfully:
 
-```
+```json
 {
-  "count":0,
-  "action":"get",
-  "node":{
-"key":"/apisix/services",
-"nodes":[],
-&

[apisix-website] branch master updated: docs: add Service discovery blog (#1405)

2022-11-14 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new e0aeb6bc194 docs: add Service discovery blog (#1405)
e0aeb6bc194 is described below

commit e0aeb6bc1947e8416649dc3f68c04a057e55b546
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Tue Nov 15 14:17:39 2022 +0800

docs: add Service discovery blog (#1405)

* docs: add Service discovery bolg

* update file name
---
 .../what-is-service-in-microservice-discovery.md   | 122 +
 1 file changed, 122 insertions(+)

diff --git 
a/blog/zh/blog/2022/11/10/what-is-service-in-microservice-discovery.md 
b/blog/zh/blog/2022/11/10/what-is-service-in-microservice-discovery.md
new file mode 100644
index 000..e988047e895
--- /dev/null
+++ b/blog/zh/blog/2022/11/10/what-is-service-in-microservice-discovery.md
@@ -0,0 +1,122 @@
+---
+title: "微服务中的服务发现是什么"
+author: "罗泽轩"
+authorURL: "https://github.com/spacewander";
+authorImageURL: "https://github.com/spacewander.png";
+keywords: 
+- 微服务
+- 服务发现
+- 开源
+- APISIX
+- Nacos
+description: 本文通过服务发现的相关背景和 APISIX 对于服务发现的应用与实践,来介绍微服务中的服务发现内容。
+tags: [Ecosystem]
+---
+
+> 本文通过服务发现的相关背景和 APISIX 对于服务发现的应用与实践,来介绍微服务中的服务发现内容。
+
+
+
+## 服务发现是什么?为什么需要?
+
+在互联网刚开始出现的年代,人们要想访问某个在线服务,需要输入一长串的 IP 地址。IP 
地址虽然不长,但是作为一串无意义的数字,要求记住特定服务的特定地址还是很考验人的记忆力。所以后来人们就发明了域名系统。每个在线服务会到域名商注册一个域名,然后通过
 DNS 建立域名和具体 IP 的联系。这样一来,人们只需要输入一个好记的域名,就能访问到具体 IP 上的在线服务。这就是最早的服务发现。
+
+当一个公司内部的服务数到了一定的规模(比如在做了微服务拆分之后),也会遇到 IP 
实在不好记的问题。这时候就需要有一套服务发现系统。公司里面各个服务在该系统上注册,然后想要访问这些服务的其他服务会从该系统上查询对应的 IP 
地址,这样就不需要让某个服务“记住”复杂多变的 IP 地址了。
+
+如下图,IP 地址的变更,会让访问者无所适从。
+
+![IP 变更](https://static.apiseven.com/2022/11/14/637210cb18c04.png)
+
+通过引入域名系统作为服务发现机制,现在可以灵活对待 IP 的变更了。
+
+![引入服务发现](https://static.apiseven.com/2022/11/09/636b130c875ca.png)
+
+## 常见服务发现系统介绍
+
+鉴于本人的能力有限,本文内容仅介绍了与 APISIX 相关的,还请各位多多见谅。
+
+作为一个服务发现系统,它需要满足至少四个功能:
+
+1. 提供注册的 API。
+2. 提供查询的 API。
+3. 高可用,毕竟服务发现系统是整个系统的神经,不能麻痹甚至瘫痪。
+4. 生态完整。众所周知,程序员是一群很懒惰的人,最好有一个库,引入进来就能跟 API 完成对接。
+
+下面让我们来看看市面上主流的几个开源服务发现系统。
+
+### Consul
+
+[Consul](https://github.com/hashicorp/consul) 是由著名的开源项目孵化公司 Hashicorp 
开发的服务发现系统。作为一个在 2014 年 4 月 17 日就发布了第一版的老牌软件,Consul 有着最为丰富的生态,甚至有第三方开发者为它开发了 
Haskell 的 SDK。大部分 Consul 的 SDK 只是对其 HTTP API 的封装,所以其实开发量并不大。
+
+Consul 支持通过 HTTP API 来完成服务的注册和查询。它支持在查询时通过 HTTP long polling 
来实现及时的数据推送,避免轮询。此外 Consul 也支持通过 DNS 的方式查询对应服务的实例。
+
+Consul 的部署方式比较有趣。Consul 的每个实例叫做 agent,它既可以是客户端,也可以是服务端。在客户端,Consul 
会维持一个客户端的状态;对于服务端, Consul 通过一致性算法 Raft,支持分布式部署,以此来实现高可用。
+
+### Eureka
+
+[Eureka](https://github.com/Netflix/eureka) 是由 Netflix 
开源出来的项目。它也是相当的古老,有迹可循的[提交](https://github.com/Netflix/eureka/commit/53939453474e39a8a68236f940c72de043ea20bd)可以追溯到
 2012 年。不过这个项目已经有 1 年不维护了。许多用户迁移到下文会提到的 Nacos 上面。
+
+Eureka 支持通过 HTTP API 和 Java SDK 来交互。许多 Eureka 的用户,其实是通过 Spring Cloud 等 Java 
生态圈里的项目带进来的。Eureka 高可用的设计,如果要用 CAP 的术语来描述,属于 
AP,即允许网络分裂时客户端看到过期的数据,避免因为网络问题出现次生灾害。
+
+### Nacos
+
+[Nacos](https://github.com/alibaba/nacos) 是由阿里巴巴开发的服务发现系统。其名称来自于 Naming and 
Configuration Service 前几个字母的汇总。自 2018 年 7 月 20 日发布了 0.1.0 版本以来,Nacos 目前已经发展到了 
2.1 版本。
+
+就像阿里巴巴的许多开源项目一样,Nacos 在中国的 Java 开发者中相当流行,其知名度甚至比 Eureka 还要大不少。
+
+它支持通过 HTTP API 和 Java/Go/Python/NodeJS/C# 等 SDK 来完成服务的注册和查询。目前,Nacos 开发者也在开发基于 
gRPC 的新 API。对于 HTTP API,目前 Nacos 只支持通过轮询的方式来获取服务列表。所以 Nacos 官方更加推荐采取 SDK 的方式。其 
SDK 的实现,是轮询+基于 UDP 的推送两种方式,因此会有更好的实时性。另外 Nacos 也在开发基于 gRPC 的新 API,该 API 
将会引入服务端推送的能力,对于那些不能接入 SDK 的系统将是一大利好。
+
+Nacos 的高可用,一方面是客户端 SDK 中提供了持久化的能力,另外服务端通过 Raft 和 Distro 两套协议实现了一致性。
+
+## 常见对接方式及各自优缺点
+
+抛开私有协议不谈,服务发现的对接方式可以分成三类:
+
+1. HTTP 轮询
+2. DNS
+3. HTTP long poll 或 gRPC server stream
+
+HTTP 轮询胜在实现简单,不过并不具有实时性。
+
+DNS 的性能开销是最小的。由于 DNS cache 的存在,DNS 也并不具有实时性。DNS 
对比于其他方式,有个好处在于它是一套广为接受、实现无关的标准。但是凡事总有两面性,这意味着服务发现系统无法给 DNS 响应增加一些额外的字段,除非活用 DNS 
响应里的 Additional 字段,但是这么一来就需要客户端特别的处理。
+
+HTTP long poll 或 gRPC server stream 是三者中最有实时性的,另外由于他们都是基于 HTTP 
的,所以可以方便地自定义响应。而缺点就是客户端实现起来相对有难度。
+
+## APISIX 如何对接服务发现系统
+
+作为一个云原生的网关,APISIX 支持从服务发现系统中获取上游节点,而且是同时支持在数据面和控制面上对接服务发现系统。
+
+### 数据面
+
+APISIX 在数据面上支持跟 DNS、Eureka、Consul(KV 模式)、Nacos、K8s 对接。
+
+在对接 DNS 服务发现,APISIX 会通过 DNS 的 SRV 或 A/ 记录获取某个服务具体的上游节点。当请求访问上游时,会先尝试从 DNS 
cache 中获取,如果没有,则发起 DNS 查询,得到对应记录里面的具体 IP 地址。
+
+至于其他的服务发现类型,则是在后台同步的。当请求访问上游时,从当前同步到的数据里获取服务名对应的那一部分数据。对于 K8s 和 Consul 
KV,由于他们支持 HTTP long polling,所以我们可以通过该方式实时获取变更的 IP 地址。而对于 Eureka 和 
Nacos,目前我们只是通过轮询的方式来获取数据。
+
+### 控制面
+
+APISIX 同时还支持在控制面上做服务发现。我们正在开发 
[apisix-seed](https://github.com/api7/apisix-seed/),该项目会从服务发现系统中同步数据到 etcd 
中,这样数据面就能从 etcd 中同步最新的上游节点了。
+
+目前我们已经在控制面上实现了对 Nacos 和 Zookeeper 的支持。由于在控制面上的服务发现支持,是通过官方提供的 SDK 
实现的,所以可以拥有普通的 HTTP 对接所没有的优势。比如在 apisix-seed 的 Nacos 实现中,我们支持基于 UDP 
的推送,所以数据的时效性要比 HTTP 轮询较好。
+
+## APISIX 支持服务发现有哪些场景优势
+
+通过在网关上直接集成服务发现,可以大大简化服务上线的工作量。配置 APISIX 来对接你的服务发现系统,然后剩下的事就让 APISIX 替你

[apisix] branch master updated: docs: add fallbck_sni faq (#8215)

2022-11-14 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 288708cbe docs: add fallbck_sni faq (#8215)
288708cbe is described below

commit 288708cbe0098fd3f62fadd725490804d5d0a3db
Author: Fei Han <97138894+hf400...@users.noreply.github.com>
AuthorDate: Mon Nov 14 16:21:03 2022 +0800

docs: add fallbck_sni faq (#8215)

* docs: add  fallbck_sni faq

* docs: fix error link
---
 docs/en/latest/FAQ.md   | 19 ++-
 docs/zh/latest/FAQ.md   | 18 ++
 docs/zh/latest/plugins/hmac-auth.md |  8 
 3 files changed, 40 insertions(+), 5 deletions(-)

diff --git a/docs/en/latest/FAQ.md b/docs/en/latest/FAQ.md
index b8aaf2b0d..0952146cd 100644
--- a/docs/en/latest/FAQ.md
+++ b/docs/en/latest/FAQ.md
@@ -1,5 +1,10 @@
 ---
 title: FAQ
+keywords:
+  - APISIX
+  - API Gateway
+  - FAQ
+description: This article lists solutions to common problems when using Apache 
APISIX.
 ---
 
 

[apisix-website] branch master updated: docs: Added cover image for blog (#1404)

2022-11-13 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 8f0c6f73bf2 docs: Added cover image for blog (#1404)
8f0c6f73bf2 is described below

commit 8f0c6f73bf27f93887c7e48537976ed8cfb86586
Author: Bhavya Tewari <55613637+bhavyat-...@users.noreply.github.com>
AuthorDate: Mon Nov 14 08:56:07 2022 +0530

docs: Added cover image for blog (#1404)

* docs: Added cover image for Google Tau T2A blog

* docs: Added cover image for Test Cases blog
---
 .../2022/06/27/getting-start-with-apisix-test-cases.md  | 17 +
 .../07/22/how-is-google-cloud-tau-t2a-performing.md |  1 +
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/blog/en/blog/2022/06/27/getting-start-with-apisix-test-cases.md 
b/blog/en/blog/2022/06/27/getting-start-with-apisix-test-cases.md
index 0ddf4903a63..024be195bd6 100644
--- a/blog/en/blog/2022/06/27/getting-start-with-apisix-test-cases.md
+++ b/blog/en/blog/2022/06/27/getting-start-with-apisix-test-cases.md
@@ -1,13 +1,13 @@
 ---
 title: "Getting Started with APISIX Test Cases"
-authors:
-  - name: "Zeping Bai"
-title: "Author"
-url: "https://github.com/bzp2010";
-image_url: "https://github.com/bzp2010.png";
-  - name: "Fei Han"
-title: "Technical Writer"
-url: "https://github.com/hf400159";
+authors:
+  - name: "Zeping Bai"
+title: "Author"
+url: "https://github.com/bzp2010";
+image_url: "https://github.com/bzp2010.png";
+  - name: "Fei Han"
+title: "Technical Writer"
+url: "https://github.com/hf400159";
 image_url: "https://github.com/hf400159.png";
 keywords: 
 - Apache APISIX
@@ -16,6 +16,7 @@ keywords:
 - GitHub
 description: This article introduces the test case of APISIX and how to write 
the test case, and shows the actual operation effect from the local and GitHub.
 tags: [Community,Ecosystem]
+image: https://static.apiseven.com/2022/11/13/637053d67a0d4.png
 ---
 
 > This article introduces the test case of APISIX and how to write the test 
 > case, and shows the actual operation effect from the local and GitHub.
diff --git a/blog/en/blog/2022/07/22/how-is-google-cloud-tau-t2a-performing.md 
b/blog/en/blog/2022/07/22/how-is-google-cloud-tau-t2a-performing.md
index aecf2ce7260..18800ff9401 100644
--- a/blog/en/blog/2022/07/22/how-is-google-cloud-tau-t2a-performing.md
+++ b/blog/en/blog/2022/07/22/how-is-google-cloud-tau-t2a-performing.md
@@ -13,6 +13,7 @@ keywords:
 - ARM64
 description: This article mainly uses the cloud native API gateway Apache 
APISIX to compare the performance of Google Cloud T2A and Google Cloud T2D.
 tags: [Ecosystem]
+image: https://static.apiseven.com/2022/11/11/636dc26637f24.png
 ---
 
 > This article mainly uses Apache APISIX to compare the performance of Google 
 > Cloud T2A and Google Cloud T2D.



[apisix-website] branch master updated: feat: release apisix-java-plugin-runner (#1403)

2022-11-10 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new bb8cc5ec915 feat: release apisix-java-plugin-runner (#1403)
bb8cc5ec915 is described below

commit bb8cc5ec91598704dce0400680d52c108accc926
Author: tzssangglass 
AuthorDate: Fri Nov 11 14:07:17 2022 +0800

feat: release apisix-java-plugin-runner (#1403)

Signed-off-by: tzssangglass 

Signed-off-by: tzssangglass 
---
 config/docs.js  | 4 ++--
 config/downloads.js | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/config/docs.js b/config/docs.js
index 2932bef1218..2fd29fcedc9 100644
--- a/config/docs.js
+++ b/config/docs.js
@@ -62,8 +62,8 @@ module.exports = [
 shape: 'star',
 color: '#FB9300',
 githubRepo: 'apache/apisix-java-plugin-runner',
-version: '0.3.0',
-releaseDate: '2022-08-19',
+version: '0.4.0',
+releaseDate: '2022-11-11',
 firstDocPath: '/development',
   },
   {
diff --git a/config/downloads.js b/config/downloads.js
index b0792ba1010..6c74de27315 100644
--- a/config/downloads.js
+++ b/config/downloads.js
@@ -52,9 +52,9 @@ module.exports = [
 color: '#FB9300',
 githubRepo: 'apache/apisix-java-plugin-runner',
 githubBranch: 'main',
-downloadPath: 
'apisix/java-plugin-runner/0.3.0/apisix-java-plugin-runner-0.3.0-src',
-version: '0.3.0',
-releaseDate: '2022-08-19',
+downloadPath: 
'apisix/java-plugin-runner/0.4.0/apisix-java-plugin-runner-0.4.0-src',
+version: '0.4.0',
+releaseDate: '2022-11-11',
 firstDocPath: '/development',
   },
   {



[apisix] branch master updated: Update standalone docs for change in SSL parameter (#8242)

2022-11-03 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 85ce81b2b Update standalone docs for change in SSL parameter (#8242)
85ce81b2b is described below

commit 85ce81b2b8615a84403e825846c06de7365345ef
Author: Adam McKay 
AuthorDate: Fri Nov 4 03:31:45 2022 +

Update standalone docs for change in SSL parameter (#8242)
---
 docs/en/latest/stand-alone.md | 2 +-
 docs/zh/latest/stand-alone.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/en/latest/stand-alone.md b/docs/en/latest/stand-alone.md
index c08ce9632..6779f3c78 100644
--- a/docs/en/latest/stand-alone.md
+++ b/docs/en/latest/stand-alone.md
@@ -169,7 +169,7 @@ plugins:
 ### How to enable SSL
 
 ```yml
-ssl:
+ssls:
 -
 cert: |
 -BEGIN CERTIFICATE-
diff --git a/docs/zh/latest/stand-alone.md b/docs/zh/latest/stand-alone.md
index 9abbe20d6..961d68a9a 100644
--- a/docs/zh/latest/stand-alone.md
+++ b/docs/zh/latest/stand-alone.md
@@ -167,7 +167,7 @@ plugins:
 ### 启用 SSL
 
 ```yml
-ssl:
+ssls:
 -
 cert: |
 -BEGIN CERTIFICATE-



[apisix-website] branch master updated: docs: update apisix 3.0 version doc label (#1391)

2022-11-02 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 1cbfffc3a5f docs: update apisix 3.0 version doc label (#1391)
1cbfffc3a5f is described below

commit 1cbfffc3a5f295f969e4bb99cebaa07c007b8800
Author: Fei Han <97138894+hf400...@users.noreply.github.com>
AuthorDate: Wed Nov 2 17:52:11 2022 +0800

docs: update apisix 3.0 version doc label (#1391)
---
 config/apisix-versions.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config/apisix-versions.js b/config/apisix-versions.js
index 13766f9f34f..457b70ea9e2 100644
--- a/config/apisix-versions.js
+++ b/config/apisix-versions.js
@@ -3,7 +3,7 @@
 /**
  * @type {Array} version list
  */
-const versions = ['2.12', '2.13', '2.14', '2.15', '2.99'];
+const versions = ['2.12', '2.13', '2.14', '2.15', '3.0'];
 
 /**
  * @type {Array} LTS version list



[apisix] branch master updated: dix remote_addr (#8210)

2022-10-31 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 024e0ef70 dix remote_addr (#8210)
024e0ef70 is described below

commit 024e0ef70b5e403e11eb7a2f4abb59675a657081
Author: chengxiaolan <30279880+hazel6...@users.noreply.github.com>
AuthorDate: Tue Nov 1 08:39:21 2022 +0800

dix remote_addr (#8210)
---
 docs/en/latest/admin-api.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/en/latest/admin-api.md b/docs/en/latest/admin-api.md
index ecdd046c7..3fbbb3e62 100644
--- a/docs/en/latest/admin-api.md
+++ b/docs/en/latest/admin-api.md
@@ -650,7 +650,7 @@ In addition to the equalization algorithm selections, 
Upstream also supports pas
 | service_name| required, can't be used with `nodes`| 
Service name used for [service discovery](discovery.md).




   [...]
 | discovery_type  | required, if `service_name` is used | 
The type of service [discovery](discovery.md).  




   [...]
 | hash_on | optional| 
Only valid if the `type` is `chash`. Supports Nginx variables (`vars`), custom 
headers (`header`), `cookie` and `consumer`. Defaults to `vars`.



[...]
-| key | optional| 
Only valid if the `type` is `chash`. Finds the corresponding node `id` 
according to `hash_on` and `key` values. When `hash_on` is set to `vars`, `key` 
is a required parameter and it supports [Nginx 
variables](http://nginx.org/en/docs/varindex.html). When `hash_on` is set as 
`header`, `key` is a required parameter, and `header name` can be customized. 
When `hash_on` is set to `cookie`, `key` is also a required p [...]
+| key | optional| 
Only valid if the `type` is `chash`. Finds the corresponding node `id` 
according to `hash_on` and `key` values. When `hash_on` is set to `vars`, `key` 
is a required parameter and it supports [Nginx 
variables](http://nginx.org/en/docs/varindex.html). When `hash_on` is set as 
`header`, `key` is a required parameter, and `header name` can be customized. 
When `hash_on` is set to `cookie`, `key` is also a required p [...]
 | checks  | optional| 
Configures the parameters for the [health check](./tutorials/health-check.md).  




   [...]
 | retries | optional| 
Sets the number of retries while passing the request to Upstream using the 
underlying Nginx mechanism. Set according to the number of available backend 
nodes by default. Setting this to `0` disables retry.   


   [...]
 | retry_timeout   | optional| 
Timeout to continue with retries. Setting this to `0` disables the retry 
timeout.



  [...]



[apisix] branch master updated: docs: fix building apisix misled (#8189)

2022-10-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new ff3c545bf docs: fix building apisix misled (#8189)
ff3c545bf is described below

commit ff3c545bfdd1b5e007e852de0f91046eaf4f6148
Author: Joanthan Chen 
AuthorDate: Fri Oct 28 17:23:53 2022 +0800

docs: fix building apisix misled (#8189)

* doc: fix building apisix misled

* docs: fix building apisix misled

* Update docs/en/latest/building-apisix.md

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>
---
 docs/en/latest/building-apisix.md | 12 
 docs/zh/latest/building-apisix.md | 14 +-
 2 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/docs/en/latest/building-apisix.md 
b/docs/en/latest/building-apisix.md
index f12fbfe08..dd2aecb6f 100644
--- a/docs/en/latest/building-apisix.md
+++ b/docs/en/latest/building-apisix.md
@@ -56,19 +56,15 @@ APISIX_VERSION='3.0.0'
 mkdir apisix-${APISIX_VERSION}
 ```
 
-You can now download the APISIX source code by running the command below:
+You can now clone the APISIX source code from Github by running the command 
below:
 
 ```shell
-wget 
https://downloads.apache.org/apisix/${APISIX_VERSION}/apache-apisix-${APISIX_VERSION}-src.tgz
+git clone --depth 1 --branch ${APISIX_VERSION} 
https://github.com/apache/apisix.git apisix-${APISIX_VERSION}
 ```
 
-You can also download the source package from the [Downloads 
page](https://apisix.apache.org/downloads/). You will also find source packages 
for APISIX Dashboard and APISIX Ingress Controller.
+You can also download the source package from the [Downloads 
page](https://apisix.apache.org/downloads/). But the source package missing the 
test case. This may affect subsequent operations.
 
-After you have downloaded the package, you can extract the files to the folder 
created previously:
-
-```shell
-tar zxvf apache-apisix-${APISIX_VERSION}-src.tgz -C apisix-${APISIX_VERSION}
-```
+And you will also find source packages for APISIX Dashboard and APISIX Ingress 
Controller from [Downloads page](https://apisix.apache.org/downloads/).
 
 Now, navigate to the directory, create dependencies, and install APISIX as 
shown below:
 
diff --git a/docs/zh/latest/building-apisix.md 
b/docs/zh/latest/building-apisix.md
index d9ebd6386..6a358b8f3 100644
--- a/docs/zh/latest/building-apisix.md
+++ b/docs/zh/latest/building-apisix.md
@@ -57,21 +57,17 @@ APISIX_VERSION='3.0.0'
 mkdir apisix-${APISIX_VERSION}
 ```
 
-现在,你可以运行以下命令来下载 APISIX 源码包:
+现在,你可以运行以下命令,从 Github 克隆 APISIX 源码:
 
 ```shell
-wget 
https://downloads.apache.org/apisix/${APISIX_VERSION}/apache-apisix-${APISIX_VERSION}-src.tgz
+git clone --depth 1 --branch ${APISIX_VERSION} 
https://github.com/apache/apisix.git apisix-${APISIX_VERSION}
 ```
 
-你可以从[下载页面](https://apisix.apache.org/downloads/)下载源码包。你也可以在该页面找到 APISIX 
Dashboard 和 APISIX Ingress Controller 的源码包。
+你可以从[下载页面](https://apisix.apache.org/downloads/)下载源码包。但是官网的源码包缺少测试用例,可能会对你后续操作产生困扰。
 
-下载源码包后,你可以将文件解压到之前创建的文件夹中:
+另外,你也可以在该页面找到 APISIX Dashboard 和 APISIX Ingress Controller 的源码包。
 
-```shell
-tar zxvf apache-apisix-${APISIX_VERSION}-src.tgz -C apisix-${APISIX_VERSION}
-```
-
-然后切换到解压的目录,创建依赖项并安装 APISIX,如下所示:
+然后切换到 APISIX 源码的目录,创建依赖项并安装 APISIX,命令如下所示:
 
 ```shell
 cd apisix-${APISIX_VERSION}



[apisix] branch master updated: docs: protect-api.md typo, remove redundant braces. (#8139)

2022-10-24 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 427a9b9f1 docs: protect-api.md typo, remove redundant braces. (#8139)
427a9b9f1 is described below

commit 427a9b9f11226cd079e4b58ee7aca3ece467a9a5
Author: ZONEPG 
AuthorDate: Tue Oct 25 09:47:44 2022 +0800

docs: protect-api.md typo, remove redundant braces. (#8139)

* docs: update protect-api.md
remove redundant braces.

* update plugin-config.md upstream.md typo fix.
---
 docs/en/latest/terminology/plugin-config.md |  6 +++---
 docs/en/latest/terminology/upstream.md  | 12 ++--
 docs/en/latest/tutorials/protect-api.md |  1 -
 docs/zh/latest/terminology/plugin-config.md |  6 +++---
 docs/zh/latest/terminology/upstream.md  | 12 ++--
 docs/zh/latest/tutorials/protect-api.md |  1 -
 6 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/docs/en/latest/terminology/plugin-config.md 
b/docs/en/latest/terminology/plugin-config.md
index a544312ad..ce73ce172 100644
--- a/docs/en/latest/terminology/plugin-config.md
+++ b/docs/en/latest/terminology/plugin-config.md
@@ -80,7 +80,7 @@ For example, if we configure a Plugin Config as shown below
 "rejected_code": 503
 }
 }
-}
+}'
 ```
 
 to a Route as shown below,
@@ -107,7 +107,7 @@ to a Route as shown below,
 "key": "remote_addr"
 }
 }
-}
+}'
 ```
 
 the effective configuration will be as the one shown below:
@@ -138,5 +138,5 @@ the effective configuration will be as the one shown below:
 "rejected_code": 503
 }
 }
-}
+}'
 ```
diff --git a/docs/en/latest/terminology/upstream.md 
b/docs/en/latest/terminology/upstream.md
index f9d539c16..20101552b 100644
--- a/docs/en/latest/terminology/upstream.md
+++ b/docs/en/latest/terminology/upstream.md
@@ -180,9 +180,9 @@ curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 
'X-API-KEY: edd1c9f034335f13
 "uri": "/hash_on_cookie",
 "upstream": {
 "key": "sid",
-"type ": "chash",
-"hash_on ": "cookie",
-"nodes ": {
+"type": "chash",
+"hash_on": "cookie",
+"nodes": {
 "127.0.0.1:1980": 1,
 "127.0.0.1:1981": 1
 }
@@ -206,9 +206,9 @@ curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 
'X-API-KEY: edd1c9f034335f13
 "uri": "/hash_on_header",
 "upstream": {
 "key": "content-type",
-"type ": "chash",
-"hash_on ": "header",
-"nodes ": {
+"type": "chash",
+"hash_on": "header",
+"nodes": {
 "127.0.0.1:1980": 1,
 "127.0.0.1:1981": 1
 }
diff --git a/docs/en/latest/tutorials/protect-api.md 
b/docs/en/latest/tutorials/protect-api.md
index dd0d67e15..a89e5103a 100644
--- a/docs/en/latest/tutorials/protect-api.md
+++ b/docs/en/latest/tutorials/protect-api.md
@@ -80,7 +80,6 @@ curl -i http://127.0.0.1:9180/apisix/admin/routes/1 \
 }
 },
   "upstream_id": "1"
-}
 }'
 ```
 
diff --git a/docs/zh/latest/terminology/plugin-config.md 
b/docs/zh/latest/terminology/plugin-config.md
index 599b88078..e7132c635 100644
--- a/docs/zh/latest/terminology/plugin-config.md
+++ b/docs/zh/latest/terminology/plugin-config.md
@@ -96,7 +96,7 @@ curl http://127.0.0.1:9180/apisix/admin/plugin_configs/1 \
 "rejected_code": 503
 }
 }
-}
+}'
 ```
 
 在路由中引入 Plugin Config:
@@ -125,7 +125,7 @@ curl http://127.0.0.1:9180/apisix/admin/routes/1 \
 "key": "remote_addr"
 }
 }
-}
+}'
 ```
 
 最后实现的效果如下:
@@ -159,5 +159,5 @@ curl http://127.0.0.1:9180/apisix/admin/routes/1 \
 "key": "remote_addr"
 }
 }
-}
+}'
 ```
diff --git a/docs/zh/latest/terminology/upstream.md 
b/docs/zh/latest/terminology/upstream.md
index 7905bab63..88bc251a1 100644
--- a/docs/zh/latest/terminology/upstream.md
+++ b/docs/zh/latest/terminology/upstream.md
@@ -174,9 +174,9 @@ curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 
'X-API-KEY: edd1c9f034335f13
 "uri": "/hash_on_cookie",
 "upstream": {
 "key": "sid",
-"type ": "chash",
-"hash_on ": "cookie",
-"nodes ": {
+"type": "chash",
+&quo

[apisix-website] branch master updated: testing contributor workshop redirect link (#1369)

2022-10-20 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new a51432b1d44 testing contributor workshop redirect link (#1369)
a51432b1d44 is described below

commit a51432b1d44450c06fd555bb7d513c787859f2f4
Author: Nasasira <72880754+nas-as...@users.noreply.github.com>
AuthorDate: Fri Oct 21 04:31:35 2022 +0300

testing contributor workshop redirect link (#1369)
---
 .htaccess | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.htaccess b/.htaccess
index 7ee7e3b3b7b..c20c380ed73 100644
--- a/.htaccess
+++ b/.htaccess
@@ -38,6 +38,8 @@ Redirect 302 "/twitter" "https://twitter.com/ApacheAPISIX";
 Redirect 302 "/youtube" 
"https://www.youtube.com/channel/UCgPD18cMhOg5rmPVnQhAC8g";
 Redirect 302 "/slack" 
"https://join.slack.com/t/the-asf/shared_invite/zt-1g9ghsrol-v4hkkV8uKbGrDqRuPEq7fg";
 Redirect 302 "/community-meeting-signup" 
"https://docs.google.com/forms/d/1wK1AqUIFfXDveNolqZmlwKOcJN1aGq8G9rfYmtHdB0I/";
+Redirect 302 "/contributor-workshop-signup" 
"https://docs.google.com/forms/d/1LUER3R9-aFsUm7MhjVd_CM1xAGnkuWIe62prFH5aqAE/";
+
 
 Redirect 301 "/docs/apisix/install" "/docs/apisix/how-to-build/"
 Redirect 301 "/docs/apisix/architecture-design/plugin/" 
"/docs/apisix/architecture-design/plugin-config/"



[apisix-website] branch master updated: Update arm-performance-google-aws-azure-with-apisix.md (#1364)

2022-10-18 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 60077e9f454 Update arm-performance-google-aws-azure-with-apisix.md 
(#1364)
60077e9f454 is described below

commit 60077e9f454d5dd15d039aa6a21f7a84adc81502
Author: Yilia <114121331+yilial...@users.noreply.github.com>
AuthorDate: Wed Oct 19 12:44:47 2022 +0800

Update arm-performance-google-aws-azure-with-apisix.md (#1364)
---
 blog/zh/blog/2022/08/12/arm-performance-google-aws-azure-with-apisix.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/blog/zh/blog/2022/08/12/arm-performance-google-aws-azure-with-apisix.md 
b/blog/zh/blog/2022/08/12/arm-performance-google-aws-azure-with-apisix.md
index c06ca937095..4aee18e56e2 100644
--- a/blog/zh/blog/2022/08/12/arm-performance-google-aws-azure-with-apisix.md
+++ b/blog/zh/blog/2022/08/12/arm-performance-google-aws-azure-with-apisix.md
@@ -115,7 +115,7 @@ Tau T2A VM 有多种预定义的 VM 形状,每个 VM 最多 48 个 vCPU,每
 
 AWS 在 2018 年就推出了首款 ARM 架构的处理器 AWS Graviton,比 GCP 提前了大约 4 年进行了基于 ARM 
架构的服务器领域的布局,如今 AWS Graviton 处理器已经发展到了第三代。
 
-通过 Apache APISIX 的性能测试结果和性价比分析,我们可以看出 AWS Graviton3 拥有比 GCP T2A 和 Azure Dpsv5 
更高的性能和性价比。这于 AWS 在 ARM 服务器领域深耕多年是分不开的。
+通过 Apache APISIX 的性能测试结果和性价比分析,我们可以看出 AWS Graviton3 拥有比 GCP T2A 和 Azure Dpsv5 
更高的性能和性价比。这与 AWS 在 ARM 服务器领域深耕多年是分不开的。
 
 此外,我们在测试过程中仅使用了 Apache APISIX 绑定单核心测试。如果使用多核,AWS Graviton 3 所呈现的性价比可能会进一步提高。
 



[apisix-website] branch master updated: docs: add Huanbei with APISIX usercase blog (#1362)

2022-10-18 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new affcff2a881 docs: add Huanbei with APISIX usercase blog (#1362)
affcff2a881 is described below

commit affcff2a881f24f5e9e944596ba2b08ec291d739
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Wed Oct 19 09:16:07 2022 +0800

docs: add Huanbei with APISIX usercase blog (#1362)

* docs: add Huanbei with APISIX usercase blog

* update Lint comments

* update comments
---
 .../zh/blog/2022/09/30/huanbei-in-apache-apisix.md | 184 +
 1 file changed, 184 insertions(+)

diff --git a/blog/zh/blog/2022/09/30/huanbei-in-apache-apisix.md 
b/blog/zh/blog/2022/09/30/huanbei-in-apache-apisix.md
new file mode 100644
index 000..2aa6fda0246
--- /dev/null
+++ b/blog/zh/blog/2022/09/30/huanbei-in-apache-apisix.md
@@ -0,0 +1,184 @@
+---
+title: "放弃 Spring Cloud Gateway!APISIX 在「还呗」的技术实践"
+author: "王晔倞"
+authorURL: "https://github.com/wang-yeliang";
+authorImageURL: "https://github.com/wang-yeliang.png";
+keywords: 
+- Apache APISIX
+- 金融
+- Java
+- API 网关
+- Spring Cloud
+description: 本文将介绍作为金融企业的还呗,为何弃用 Spring Cloud Gateway 而选择 APISIX 作为他们的网关。
+tags: [Case Studies]
+---
+
+> 本文将介绍作为金融企业的还呗,为何弃用 Spring Cloud Gateway 而选择 APISIX 作为他们的网关。
+
+
+
+不同行业之间,都会存在一些业务属性上的差距。对于金融领域的应用软件来说,因其涉及到钱等因素,所以在业务上会有以下独特属性:
+
+* **稳定性**:金融领域跟钱强相关,这对于业务稳定性就有着非常严格的要求,稳定性一旦出现问题,它将影响整个交易系统的成败。
+
+* 
**强监管**:强监管一般是针对生物医药领域、医疗领域和金融领域,因为它们所呈现的内容都与人的生命相关。所以,更高层面的强监管要求势必会影响一些业务层面的选型和架构呈现。
+
+* **准确性和有效性**:由于跟钱强相关,所以在数字层面的呈现更是要求零偏差。就像股票价格一样,它的数字呈现都是精确到了每分每秒和固定数位的。
+
+基于以上这些特点,金融行业软件系统在进行系统设计、机房拓扑以及中间件选型时,就会出现一些与其他通用行业不太一样的地方。
+
+## 对 Java 的那些爱与恨
+
+### 金融系统为何独爱 Java
+
+Java 自诞生以来就深受开发者的喜爱。在中国有将近 50% 的开发者在使用 Java 作为开发语言。这不单单是因为其语言的优势,也因为 Java 
相关的生态非常庞大,尤其是国内的金融系统很多都是基于 Java 的,这导致有段时间大家都误以为所有的系统都是用 Java 做的。
+
+近 15~20 年以来,大部分金融系统基本都选择了 Java 技术栈,深究其原因,我们认为主要是因为 Java 技术栈有以下几点优势。
+
+![Java 技术栈优势](https://static.apiseven.com/2022/10/10/6343d598b7c94.png)
+
+正是如此,Java 逐渐得到了金融类软件系统的青睐。
+
+### 云原生时代下的 Java 现状
+
+随着技术行业的快速发展,单体架构逐渐被淘汰,微服务和云原生时代正在风靡四海。然而在近几年的技术大环境下,作为面向对象的高级语言,Java 
也在一些业务场景中开始略显疲惫:
+
+![云原生时代下的 Java 不足](https://static.apiseven.com/2022/10/10/6343d598b6124.png)
+
+首先,Java 性能较低,这点对比一下 C 语言相关技术栈就会明白。Java 
是基于虚拟机,它的内存管理是交给虚拟机来解决的,所以当面对一些高性能或动态变化的业务场景时,Java 语言在处理上没有那么强势。
+
+其次,Java 语言需要更多的资源。一个架构的打造如果不考虑成本,很多问题都很好解决,但在云原生时代下,所有的资源计算变得越来越细、越来越颗粒化。Java 
在运作时需要消耗大量的资源,由于 Java 分量重和需要重启的基础特性,因此在高 QPS 或者业务连续性要求较高的场景下,该语言会更容易出现问题。
+
+最后就是指针变量的问题。习惯于写 C/C++ 语言的同学都知道,指针是一个非常好的资源。但 Java 是基于虚拟机,它把内存管理交给了 GC(Garbage 
Collection),而不是由手动程序进行管理,所以对于一些特定情况或者高并发、高访问量和高性能的场景下,Java 的实际性能可能就略显不足了。
+
+## 还呗为何选择 APISIX?
+
+数禾科技是一家提供智能化金融的服务平台,旗下主要产品有还呗、还享花等。还呗 APP 
是一款基于消费多场景的分期服务平台,通过与持牌金融机构合作,为大众提供个人消费信贷服务,并为小微企业主提供贷款资金支持。在业务架构层面,还呗的产品实现一直是依赖
 Java 技术栈的。
+
+Spring Cloud Gateway 是 Spring Cloud 生态下为更好管理微服务而诞生的网关项目,对于公司业务以 Java 
为主要开发语言的情况下,Spring Cloud Gateway 通常是个不错的 API 网关选择。**但在近期的 API 
网关迭代过程中,还呗放弃了使用已久的 Spring Cloud Gateway,选择了 Apache APISIX**。
+
+### 架构的前后变化
+
+在架构层面,还呗在使用 APISIX 前后呈现了如下图所示的变化。
+
+![应用 APISIX 架构变化](https://static.apiseven.com/2022/10/10/6343d5999838a.png)
+
+在左侧的使用前架构中,还呗一共使用了三套网关系统,并把网关分为入口网关和出口网关两大类。其中在运营系统网关和出口系统网关中,都使用了 Spring 
Cloud Gateway 作为网关,而在业务系统网关中则使用了 OpenResty 作为业务系统网关。
+
+对于一开始使用 Spring Cloud Gateway 作为运营和出口系统网关,主要是看中了 Spring Cloud 
庞大的生态系统,以及简单易部署和易维护的分布式系统开发框架,所以在早期进行业务架构部署时,为了更快搭建起业务而选择使用 Spring Cloud 全家桶。
+
+但随着业务慢慢发展,原先架构中的网关开始出现一些稳定性的问题,比如内存溢出、CPU 
使用率过高等情况。为了升级网关性能及统一多个网关,还呗将架构中的网关全部统一替换为了 Apache APISIX。
+
+在新网关架构中,业务系统网关会优先把请求流量通过服务发现的方式直接转发到业务系统。如果后端应用在 Consul 中没有健康 Pod 
或者后端应用不支持服务发现等,就会把流量转发到以前的内网 K8s Ingress,作为兜底的上游来使用。
+
+新架构同时也统一了出口网关的两个应用,新出口网关部署在 K8s 集群外的外联区。同时也在出口网关集群前新增一个 SLB,可以统一出口网关的入口 
,方便没有服务发现能力的应用或者其他 VPC 内的系统调用。
+
+### 基于 APISIX 的应用实践
+
+实际业务情况下,由于内部已存在多种网关架构,没办法直接使用 Apache APISIX,于是还呗基于 APISIX 进行了一些改造和构建。
+
+ APISIX 构建部署
+
+在内部进行开发时,将 APISIX 网关的代码和定制代码存放在不同路径下,两者协同工作,各自可独立迭代。在部署时则采用 Docker 镜像方式部署,构建一个 
APISIX 指定版本的基础镜像,然后再把自定义代码打包形成新镜像。
+
+自定义代码打包时没有使用 `lua_package_path` 来指定代码目录,而是直接覆盖基础镜像 `apisix` 
源码目录,如果有同名文件则覆盖源码文件。Dockerfile 如下所示:
+
+```dockerfile
+FROM registry.xxx.net:5001/apisix-shuhe:v1.5
+ENV APP_NAME={{APP_NAME}}
+COPY {{PRODUCT_FILE}} /tmp/deploy2/artifact.tar.gz
+
+RUN mkdir /tmp/deploy/ && tar -xf /tmp/deploy2/artifact.tar.gz -C /tmp/deploy/ 
&& \
+cp -R /tmp/deploy/apisix/ /usr/local/apisix/ && \
+cp /tmp/deploy/bin/apisix /usr/bin/apisix && \
+cp /tmp/deploy/conf/apisix-$APP_NAME.yaml /usr/local/apisix/conf/apisix.yaml 
&& \
+cp /tmp/deploy/conf/config-$APP_NAME.yaml /usr/local/apisix/conf/config.yaml 
&& \
+set -x && \
+bin='#! /usr/local/openresty/luajit/bin/luajit\npackage.path = 
"/usr/local/apisix/?.lua;" .. package.path' &&a

[apisix] branch master updated: docs: update proxy_rewrite doc about the describe of regex_uri (#8069)

2022-10-13 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 91ac6fd70 docs: update proxy_rewrite doc about the describe of 
regex_uri (#8069)
91ac6fd70 is described below

commit 91ac6fd704da764b4492b6013e9d41ac45e2908f
Author: chengxiaolan <30279880+hazel6...@users.noreply.github.com>
AuthorDate: Fri Oct 14 09:25:45 2022 +0800

docs: update proxy_rewrite doc about the describe of regex_uri (#8069)

* fix proxy_rewrite doc

* fix docs

* fix docs
---
 docs/en/latest/plugins/redirect.md  | 16 
 docs/zh/latest/plugins/proxy-rewrite.md |  2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/docs/en/latest/plugins/redirect.md 
b/docs/en/latest/plugins/redirect.md
index a3a7333e7..4e55bad5b 100644
--- a/docs/en/latest/plugins/redirect.md
+++ b/docs/en/latest/plugins/redirect.md
@@ -32,14 +32,14 @@ The `redirect` Plugin can be used to configure redirects.
 
 ## Attributes
 
-| Name| Type  | Required | Default | Valid values | 
Description 



   |
-|-|---|--|-|--||
-| http_to_https   | boolean   | False| false   |  | 
When set to `true` and the request is HTTP, it will be redirected to HTTPS with 
the same URI with a 301 status code.  Note the querystring from the raw URI 
will also be contained in the Location header.  


 [...]
-| uri | string| False| |  | 
URI to redirect to. Can contain Nginx variables. For example, 
`/test/index.html`, `$uri/index.html`, `${uri}/index.html`. If you refer to a 
variable name that doesn't exist, instead of throwing an error, it will treat 
it as an empty variable.
 |
-| regex_uri   | array[string] | False| |  | 
Match the URL from client with a regular expression and redirect. If it doesn't 
match, the request will be forwarded to the Upstream. Only either of `uri` or 
`regex_uri` can be used at a time. For example, [" ^/iresty/(.*)/(.*)/(.*)", 
"/$1-$2-$3"], where the first element is the regular expression to match and 
the second element is the URI to redirect to.  |
-| ret_code| integer   | False| 302 | [200, ...]   | 
HTTP response code. 



   |
-| encode_uri  | boolean   | False| false   |  | 
When set to `true` the URI in the `Location` header will be encoded as per 
[RFC3986](https://datatracker.ietf.org/doc/html/rfc3986).   


|
-| append_query_string | boolean   | False| false   |  | 
When set to `true`, adds the query string from the original request to the 
`Location` header. If the configured `uri` or `regex_uri` already contains a 
query string, the query string from the request will be appended to it with an 
`&`. Do not use this if you have already handled the query string (for example, 
with an Nginx variable `$request_uri`) to avoid duplicates. |
+| Name| Type  | Required

[apisix] branch master updated: docs: fix typo and add `prefix` (#8072)

2022-10-11 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new b4097a4f7 docs: fix typo and add `prefix` (#8072)
b4097a4f7 is described below

commit b4097a4f706ebc868c4af1dab3fb9495e0f173fc
Author: Fei Han <97138894+hf400...@users.noreply.github.com>
AuthorDate: Wed Oct 12 10:09:57 2022 +0800

docs: fix typo and add `prefix` (#8072)

* docs: fix typo

* docs: fix typo

* docs: update
---
 docs/en/latest/deployment-modes.md | 13 +++--
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/docs/en/latest/deployment-modes.md 
b/docs/en/latest/deployment-modes.md
index 645782dcd..c92129efd 100644
--- a/docs/en/latest/deployment-modes.md
+++ b/docs/en/latest/deployment-modes.md
@@ -58,7 +58,7 @@ deployment:
 port: 9180
 etcd:
host:
-   - http://${IP}:${Port}
+   - http://${etcd_IP}:${etcd_Port}
prefix: /apisix
timeout: 30
 ```
@@ -92,7 +92,8 @@ deployment:
config_provider: control_plane
control_plane:
host:
-   - ${IP}:9280
+   - https://${Control_Plane_IP}:9280
+   prefix: /apisix
timeout: 30
 certs:
 cert: /path/to/ca-cert
@@ -110,7 +111,7 @@ The example below shows the configuration of an APISIX 
instance as control plane
 ```yaml title="conf/config.yaml"
 deployment:
 role: control_plane
-role_control_plan:
+role_control_plane:
 config_provider: etcd
 conf_server:
 listen: 0.0.0.0:9280
@@ -119,7 +120,7 @@ deployment:
 client_ca_cert: /path/to/ca-cert
 etcd:
host:
-   - https://${IP}:${Port}
+   - https://${etcd_IP}:${etcd_Port}
prefix: /apisix
timeout: 30
 certs:
@@ -135,7 +136,7 @@ As OpenResty <= 1.21.4 does not support sending mTLS 
requests, to accept connect
 ```yaml title="conf/config.yaml"
 deployment:
 role: control_plane
-role_control_plan:
+role_control_plane:
 config_provider: etcd
 conf_server:
 listen: 0.0.0.0:9280
@@ -143,7 +144,7 @@ deployment:
 cert_key: /path/to/ca-cert
 etcd:
host:
-   - https://${IP}:${Port}
+   - https://${etcd_IP}:${etcd_Port}
prefix: /apisix
timeout: 30
 certs:



[apisix-website] branch master updated: docs: optimize “dapr with apisix” document (#1353)

2022-10-07 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 3279c4c948d docs: optimize “dapr with apisix” document (#1353)
3279c4c948d is described below

commit 3279c4c948d4a2c8500b4a5c05dee9fff43957cb
Author: oil欧呦 <2228586...@qq.com>
AuthorDate: Sat Oct 8 10:14:04 2022 +0800

docs: optimize “dapr with apisix” document (#1353)

* docs: improve dapr with apisix

* fix: update image

* fix: lint code
---
 blog/en/blog/2021/11/17/dapr-with-apisix.md | 11 +--
 blog/zh/blog/2021/11/17/dapr-with-apisix.md | 11 +--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/blog/en/blog/2021/11/17/dapr-with-apisix.md 
b/blog/en/blog/2021/11/17/dapr-with-apisix.md
index 23b3c5acc09..ee351340804 100644
--- a/blog/en/blog/2021/11/17/dapr-with-apisix.md
+++ b/blog/en/blog/2021/11/17/dapr-with-apisix.md
@@ -36,7 +36,7 @@ In the K8s ecosystem, Ingress is a resource that represents 
the entry point for
 
 APISIX Ingress is another implementation of the Ingress Controller. The main 
difference from Kubernetes Ingress Nginx is that APISIX Ingress uses Apache 
APISIX as the actual data plane for hosting business traffic. As shown in the 
figure below, when a user requests a specific service/API/web page, the entire 
business traffic/user request is transferred to the K8s cluster through an 
external proxy and then processed by APISIX Ingress.
 
-![APISIX 
Ingress](https://static.apiseven.com/202108/1637119221119-71bbe219-dd19-46be-90fb-20cd667d9805.png)
+![APISIX Ingress](https://static.apiseven.com/2022/09/30/6336a25db849f.png)
 
 As you can see from the above diagram, APISIX Ingress is divided into two 
parts. One part is the APISIX Ingress Controller, which serves as the control 
plane for configuration management and distribution. The other part is the 
APISIX Proxy Pod, which is responsible for carrying business traffic and is 
implemented through CRD (Custom Resource Definitions). Apache APISIX Ingress 
supports not only custom resources but also native K8s Ingress resources.
 
@@ -132,9 +132,16 @@ Next, run the following command (referencing the above 
file).
 helm install apisix apisix/apisix -f dapr-annotations.yaml -n ingress-apisix
 ```
 
+Expose the launched APISIX Dashboard Pod to the outside world for subsequent 
use:
+
+```shell
+# You can get the dashboard-pod-name via kubectl get pods -n ingress-apisix
+kubectl port-forward ${dashboard-pod-name} 9000:9000
+```
+
 ### Step 4: Create the Dapr Sidecar resource for Apache APISIX
 
-First, configure Apache APISIX upstream-apisix-dapr.
+First, access the APISIX Dashboard via `http://localhost:9000` to configure 
Apache APISIX upstream-apisix-dapr.
 
 ![Create the Dapr 
Sidecar](https://static.apiseven.com/202108/1638855797186-a9b940e2-4d56-4a6d-a621-ea615ddba0dd.png)
 
diff --git a/blog/zh/blog/2021/11/17/dapr-with-apisix.md 
b/blog/zh/blog/2021/11/17/dapr-with-apisix.md
index 499e8161752..a8f7f62b533 100644
--- a/blog/zh/blog/2021/11/17/dapr-with-apisix.md
+++ b/blog/zh/blog/2021/11/17/dapr-with-apisix.md
@@ -36,7 +36,7 @@ image: 
https://static.apiseven.com/2022/blog/0818/ecosystem/dapr.png
 
 而 APISIX Ingress 则是另一种 Ingress Controller 的实现。跟 Kubernetes Ingress Nginx 
的区别主要在于 APISIX Ingress 是以 Apache APISIX 
作为实际承载业务流量的数据面。如下图所示,当用户请求到具体的某一个服务/API/网页时,通过外部代理将整个业务流量/用户请求传输到 K8s 集群,然后经过 
APISIX Ingress 进行后续处理。
 
-![APISIX 
Ingress](https://static.apiseven.com/202108/1637119221119-71bbe219-dd19-46be-90fb-20cd667d9805.png)
+![APISIX Ingress](https://static.apiseven.com/2022/09/30/6336a25db849f.png)
 
 从上图可以看到,APISIX Ingress 分成了两部分。一部分是 APISIX Ingress 
Controller,作为控制面它将完成配置管理与分发。另一部分 APISIX Proxy Pod 负责承载业务流量,它是通过 CRD(Custom 
Resource Definitions) 的方式实现的。Apache APISIX Ingress 除了支持自定义资源外,还支持原生的 K8s 
Ingress 资源。
 
@@ -132,9 +132,16 @@ dashboard:
 helm install apisix apisix/apisix -f dapr-annotations.yaml -n ingress-apisix
 ```
 
+将启动的 APISIX Dashboard Pod 向外暴露,便于后续使用:
+
+```shell
+# 可以通过 kubectl get pods -n ingress-apisix 获取 dashboard-pod-name
+kubectl port-forward ${dashboard-pod-name} 9000:9000
+```
+
 ### 步骤四:创建 Apache APISIX 的 Dapr Sidecar 资源
 
-首先,配置 Apache APISIX upstream-apisix-dapr。
+首先,通过 `http://localhost:9000` 访问 APISIX Dashboard 配置 Apache APISIX 
upstream-apisix-dapr。
 
 
![配置上游业务](https://static.apiseven.com/202108/1637119221106-e57ae8b8-38ed-46ea-b219-401619fadbe3.png)
 



[apisix] branch master updated: docs: fix sample configuration formatting errors (#8030)

2022-10-02 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 9a0893241 docs: fix sample configuration formatting errors (#8030)
9a0893241 is described below

commit 9a08932417e16c51bcd9ed395a4947c339176527
Author: tzssangglass 
AuthorDate: Mon Oct 3 10:03:09 2022 +0800

docs: fix sample configuration formatting errors (#8030)
---
 docs/en/latest/plugins/ext-plugin-post-resp.md | 1 +
 docs/en/latest/plugins/ext-plugin-pre-req.md   | 1 +
 docs/zh/latest/plugins/ext-plugin-post-resp.md | 1 +
 docs/zh/latest/plugins/ext-plugin-pre-req.md   | 1 +
 4 files changed, 4 insertions(+)

diff --git a/docs/en/latest/plugins/ext-plugin-post-resp.md 
b/docs/en/latest/plugins/ext-plugin-post-resp.md
index d47f6f2a5..caf87cda4 100644
--- a/docs/en/latest/plugins/ext-plugin-post-resp.md
+++ b/docs/en/latest/plugins/ext-plugin-post-resp.md
@@ -67,6 +67,7 @@ curl -i http://127.0.0.1:9180/apisix/admin/routes/1  -H 
'X-API-KEY: edd1c9f03433
 "conf" : [
 {"name": "ext-plugin-A", "value": "{\"enable\":\"feature\"}"}
 ]
+}
 },
 "upstream": {
 "type": "roundrobin",
diff --git a/docs/en/latest/plugins/ext-plugin-pre-req.md 
b/docs/en/latest/plugins/ext-plugin-pre-req.md
index 3992d059e..909da7c15 100644
--- a/docs/en/latest/plugins/ext-plugin-pre-req.md
+++ b/docs/en/latest/plugins/ext-plugin-pre-req.md
@@ -58,6 +58,7 @@ curl -i http://127.0.0.1:9180/apisix/admin/routes/1  -H 
'X-API-KEY: edd1c9f03433
 "conf" : [
 {"name": "ext-plugin-A", "value": "{\"enable\":\"feature\"}"}
 ]
+}
 },
 "upstream": {
 "type": "roundrobin",
diff --git a/docs/zh/latest/plugins/ext-plugin-post-resp.md 
b/docs/zh/latest/plugins/ext-plugin-post-resp.md
index 429e724ef..8b7c31d7a 100644
--- a/docs/zh/latest/plugins/ext-plugin-post-resp.md
+++ b/docs/zh/latest/plugins/ext-plugin-post-resp.md
@@ -68,6 +68,7 @@ curl -i http://127.0.0.1:9180/apisix/admin/routes/1  \
 "conf" : [
 {"name": "ext-plugin-A", "value": "{\"enable\":\"feature\"}"}
 ]
+}
 },
 "upstream": {
 "type": "roundrobin",
diff --git a/docs/zh/latest/plugins/ext-plugin-pre-req.md 
b/docs/zh/latest/plugins/ext-plugin-pre-req.md
index 458ecc511..e66fd36c7 100644
--- a/docs/zh/latest/plugins/ext-plugin-pre-req.md
+++ b/docs/zh/latest/plugins/ext-plugin-pre-req.md
@@ -59,6 +59,7 @@ curl -i http://127.0.0.1:9180/apisix/admin/routes/1  \
 "conf" : [
 {"name": "ext-plugin-A", "value": "{\"enable\":\"feature\"}"}
 ]
+}
 },
 "upstream": {
 "type": "roundrobin",



[apisix-website] branch master updated: docs: add APISIX 3.0.0-beta release blog (#1346)

2022-09-28 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new d9f07b0ae87 docs: add APISIX 3.0.0-beta release blog (#1346)
d9f07b0ae87 is described below

commit d9f07b0ae87f32d29105e9cc4dd24313f4fdc8e1
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Wed Sep 28 16:33:24 2022 +0800

docs: add APISIX 3.0.0-beta release blog (#1346)

* docs: add APISIX 3.0.0-beta release blog

* update Lint comments

* update authors details

Co-authored-by: Fei Han <97138894+hf400...@users.noreply.github.com>

Co-authored-by: Fei Han <97138894+hf400...@users.noreply.github.com>
---
 .../2022/09/28/apache-apisix-3.0.0-beta-release.md | 228 +
 1 file changed, 228 insertions(+)

diff --git a/blog/zh/blog/2022/09/28/apache-apisix-3.0.0-beta-release.md 
b/blog/zh/blog/2022/09/28/apache-apisix-3.0.0-beta-release.md
new file mode 100644
index 000..34e5368e4bd
--- /dev/null
+++ b/blog/zh/blog/2022/09/28/apache-apisix-3.0.0-beta-release.md
@@ -0,0 +1,228 @@
+---
+title: "APISIX 3.0.0 预览版现已发布!带来丰富功能与迭代细节"
+authors:
+  - name: "罗泽轩"
+title: "Author"
+url: "https://github.com/spacewander";
+image_url: "https://github.com/spacewander.png";
+  - name: "苏钰"
+title: "Technical Writer"
+url: "https://github.com/SylviaBABY";
+image_url: "https://avatars.githubusercontent.com/u/39793568?v=4";
+keywords:
+  - Apache APISIX
+  - API 网关
+  - API 管理平台
+  - 版本发布
+  - 新功能
+description: Apache APISIX 3.0.0 预览版现已发布,为你整理了此次预览版上线的一些功能与调整细节。
+tags: [Community]
+---
+
+> Apache APISIX 3.0.0 预览版现已发布,为你整理了此次预览版上线的一些功能与调整细节。
+
+
+
+本次发布的新版本,是 3.0.0 的 Beta 预览版。作为 3.0 正式版的探路先锋,预览版已经包含了 3.0 大版本中带来的多项新功能。如果你想提前感受 
APISIX 3.0 版本的功能盛宴,欢迎尝鲜此次预览版,也期待你在使用中向社区反馈相关体验。
+
+正因为 3.0.0-beta 版本新增了很多不向下兼容的改动,本次发版公告会一一列出这些改动,让各位用户在迁移配置时有所准备。
+
+## 新变化
+
+### 移动 config_center、etcd 和 Admin API 配置到 deployment 中
+
+在 3.0 版本中,调整了静态配置文件中的配置,所以你需要同步更新下 `config.yaml` 文件内的配置。
+
+- `config_center` 功能改由 `deployment` 中的 `config_provider` 
实现([#7901](https://github.com/apache/apisix/pull/7901))
+- `etcd` 字段整体搬迁到 `deployment` 
中([#7860](https://github.com/apache/apisix/pull/7860))
+- 以下 Admin API 配置移动到 `deployment` 中的 `admin` 
字段([#7823](https://github.com/apache/apisix/pull/7823)):
+  - admin_key
+  - enable_admin_cors
+  - allow_admin
+  - admin_listen
+  - https_admin
+  - admin_api_mtls
+  - admin_api_version
+
+更多详情可参考最新的 
`[config-default.yaml](https://github.com/apache/apisix/blob/master/conf/config-default.yaml)`
 文件。
+
+### 移除多个已废弃配置
+
+在 3.0 新版本中,我们把许多之前标记为 `deprecated` 的配置进行了清理。
+
+在静态配置中,移除了以下若干字段:
+
+- 移除 `apisix.ssl` 中的 `enable_http2` 和 
`listen_port`([#7717](https://github.com/apache/apisix/pull/7717))
+- 移除 `apisix.port_admin`([#7716](https://github.com/apache/apisix/pull/7716))
+- 移除 
`etcd.health_check_retry`([#7676](https://github.com/apache/apisix/pull/7676))
+- 移除 
`nginx_config.http.lua_shared_dicts`([#7677](https://github.com/apache/apisix/pull/7677))
+- 移除 
`nginx_config.http.real_ip_header`([#7696](https://github.com/apache/apisix/pull/7696))
+
+在动态配置中,进行了以下调整:
+
+- 将插件配置的 `disable` 移到 `_meta` 
中([#7707](https://github.com/apache/apisix/pull/7707))
+- 从 Route 中移除了 
`service_protocol`([#7701](https://github.com/apache/apisix/pull/7701))
+
+此外还有具体插件级别上的改动:
+
+- authz-keycloak 中移除了 `audience` 
字段([#7683](https://github.com/apache/apisix/pull/7683))
+- mqtt-proxy 中移除了 `upstream` 
字段([#7694](https://github.com/apache/apisix/pull/7694))
+- error-log-logger 中把 TCP 相关配置放到 `tcp` 
字段中([#7700](https://github.com/apache/apisix/pull/7700))
+- syslog 中移除了 `max_retry_times` 和 `retry_interval` 
字段([#7699](https://github.com/apache/apisix/pull/7699))
+- proxy-rewrite 中移除了 `scheme` 
字段([#7695](https://github.com/apache/apisix/pull/7695))
+
+### 调整 Admin API 响应格式
+
+我们在以下两个 PR 中调整了 Admin API 的响应格式:
+
+- [#7630](https://github.com/apache/apisix/pull/7630)
+- [#7622](https://github.com/apache/apisix/pull/7622)
+
+新的响应格式调整为以下类型。
+
+返回单个配置:
+
+```yaml
+{
+  "modifiedIndex": 2685183,
+  "value": {
+"id": "1",
+...
+  },
+  "key": "/apisix/routes/1",
+  "createdIndex": 2684956
+}
+```
+
+返回多个配置:
+
+```yaml
+{
+  "list": [
+{
+  "modifiedIndex": 2685183,
+  "value": {
+"id": "1",
+...
+  },
+  "key": "/apisix/routes/1",
+  "createdIndex": 2684956
+},
+{
+  "modifiedIndex": 2685163,
+  "value": {
+"id": "2",
+...
+  },
+  "key": "/apisix/routes/2",
+  "createdIndex&

[apisix-website] branch master updated: fix: update version list (#1348)

2022-09-27 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 824e93aba13 fix: update version list (#1348)
824e93aba13 is described below

commit 824e93aba1305445a90e6fa6a21be3f622bc3356
Author: 罗泽轩 
AuthorDate: Wed Sep 28 14:26:43 2022 +0800

fix: update version list (#1348)

Signed-off-by: spacewander 
---
 config/apisix-versions.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config/apisix-versions.js b/config/apisix-versions.js
index f02a29ecbeb..9ea6d31a327 100644
--- a/config/apisix-versions.js
+++ b/config/apisix-versions.js
@@ -3,7 +3,7 @@
 /**
  * @type {Array} version list
  */
-const versions = ['2.12', '2.13', '2.14', '2.15'];
+const versions = ['2.12', '2.13', '2.14', '2.15', '2.99'];
 
 /**
  * @type {Array} LTS version list



[apisix-website] branch master updated: docs: update tags and Editors' Picks (#1347)

2022-09-27 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 61f551d7cfd docs: update tags and Editors' Picks (#1347)
61f551d7cfd is described below

commit 61f551d7cfd0842e12f5a30d3ccaebc0191e8115
Author: Fei Han <97138894+hf400...@users.noreply.github.com>
AuthorDate: Wed Sep 28 14:23:23 2022 +0800

docs: update tags and Editors' Picks (#1347)

* docs: update tags and Editors' Picks
---
 blog/creative-work.schema.yaml   |  6 +++---
 ...th-China-Data-Security-and-Privacy-Protection-Team.md |  2 +-
 ...Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017.md |  2 +-
 ...d-Access-Control-Bypass-Vulnerability-Announcement.md |  2 +-
 blog/en/blog/2021/11/23/cve-2021-43557.md|  2 +-
 blog/en/blog/2021/12/28/dashboard-cve-2021-45232.md  |  2 +-
 blog/en/blog/2022/02/11/cve-2022-24112.md|  2 +-
 blog/en/blog/2022/04/20/cve-2022-29266.md|  2 +-
 blog/src/theme/BlogLayout/index.tsx  | 16 
 ...th-China-Data-Security-and-Privacy-Protection-Team.md |  2 +-
 ...d-Access-Control-Bypass-Vulnerability-Announcement.md |  2 +-
 blog/zh/blog/2021/11/23/cve-2021-43557.md|  2 +-
 blog/zh/blog/2021/12/28/dashboard-cve-2021-45232.md  |  2 +-
 blog/zh/blog/2022/02/11/cve-2022-24112.md|  2 +-
 blog/zh/blog/2022/04/20/cve-2022-29266.md|  2 +-
 blog/zh/config/picked-posts.json |  3 ++-
 16 files changed, 26 insertions(+), 25 deletions(-)

diff --git a/blog/creative-work.schema.yaml b/blog/creative-work.schema.yaml
index 2d50400cbe4..31e39a4f5f6 100644
--- a/blog/creative-work.schema.yaml
+++ b/blog/creative-work.schema.yaml
@@ -9,11 +9,11 @@ properties:
   type: string
   enum:
 - Case Studies
-- Community
+- Plugins
 - Ecosystem
 - Authentication
-- Security
-- Plugins
+- Community
+- Vulnerabilities
   keywords:
 type: array
   image:
diff --git 
a/blog/en/blog/2021/01/11/interview-Apache-APISIX-contributor-Wang-Pengcheng-Senior-Security-Advisor-of-PwC-South-China-Data-Security-and-Privacy-Protection-Team.md
 
b/blog/en/blog/2021/01/11/interview-Apache-APISIX-contributor-Wang-Pengcheng-Senior-Security-Advisor-of-PwC-South-China-Data-Security-and-Privacy-Protection-Team.md
index 8c5cedf4ed5..4c653dfd1fa 100644
--- 
a/blog/en/blog/2021/01/11/interview-Apache-APISIX-contributor-Wang-Pengcheng-Senior-Security-Advisor-of-PwC-South-China-Data-Security-and-Privacy-Protection-Team.md
+++ 
b/blog/en/blog/2021/01/11/interview-Apache-APISIX-contributor-Wang-Pengcheng-Senior-Security-Advisor-of-PwC-South-China-Data-Security-and-Privacy-Protection-Team.md
@@ -11,7 +11,7 @@ keywords:
 - PricewaterhouseCoopers 
 - CVE
 description: PricewaterhouseCoopers reported a vulnerability in the Admin API 
default token of the API gateway Apache APISIX.
-tags: [Security]
+tags: [Vulnerabilities]
 image: https://static.apiseven.com/2022/blog/0818/cve/CVE-2020-13945.png
 ---
 
diff --git 
a/blog/en/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017.md 
b/blog/en/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017.md
index b325b77ce5b..894a4a0830c 100644
--- 
a/blog/en/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017.md
+++ 
b/blog/en/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017.md
@@ -10,7 +10,7 @@ keywords:
 - API Gateway
 - Security
 description: Cloud-native API gateway Apache APISIX is not affected by the 
NGINX (CVE-2021-23017) vulnerability.
-tags: [Security]
+tags: [Vulnerabilities]
 image: https://static.apiseven.com/2022/blog/0818/cve/CVE-2021-23017.png
 ---
 
diff --git 
a/blog/en/blog/2021/06/17/Apache-APISIX-Dashboard-Access-Control-Bypass-Vulnerability-Announcement.md
 
b/blog/en/blog/2021/06/17/Apache-APISIX-Dashboard-Access-Control-Bypass-Vulnerability-Announcement.md
index a501b578a4f..42cad12aa72 100644
--- 
a/blog/en/blog/2021/06/17/Apache-APISIX-Dashboard-Access-Control-Bypass-Vulnerability-Announcement.md
+++ 
b/blog/en/blog/2021/06/17/Apache-APISIX-Dashboard-Access-Control-Bypass-Vulnerability-Announcement.md
@@ -9,7 +9,7 @@ keywords:
 - Apache APISIX
 - Ingress Controller
 description: Cloud native API gateway Apache APISIX Dashboard Access Control 
bypass vulnerability announcement, please upgrade the version as soon as 
possible to fix this vulnerability.
-tags: [Security]
+tags: [Vulnerabilities]
 image: https://static.apiseven.com/2022/blog/0818/cve/CVE-2021-33190.png
 ---
 
diff --git a/blog/en/blog/2021/11/23/cve-2021-43557.md 
b/blog/en/blog/2021/11/23/cve-2021-43557.md
index 4d0c75cd725..d1cc1484194 100644
--- a/blog/en/blog/2021/11/23/cve-2021-43557.md
+++ b/bl

[apisix-website] branch master updated: docs: add APISIX is best API gateway blog(CN) (#1345)

2022-09-27 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
 new 816e3af6f6f docs: add APISIX is best API gateway blog(CN) (#1345)
816e3af6f6f is described below

commit 816e3af6f6f2bbd019efbd6198bfc40aecc3dbd7
Author: Sylvia <39793568+sylviab...@users.noreply.github.com>
AuthorDate: Wed Sep 28 09:30:03 2022 +0800

docs: add APISIX is best API gateway blog(CN) (#1345)
---
 .../09/27/why-apache-apisix-is-best-apigateway.md  | 206 +
 1 file changed, 206 insertions(+)

diff --git a/blog/zh/blog/2022/09/27/why-apache-apisix-is-best-apigateway.md 
b/blog/zh/blog/2022/09/27/why-apache-apisix-is-best-apigateway.md
new file mode 100644
index 000..92d48a60d1d
--- /dev/null
+++ b/blog/zh/blog/2022/09/27/why-apache-apisix-is-best-apigateway.md
@@ -0,0 +1,206 @@
+---
+title: "为什么说 Apache APISIX 是最好的 API 网关?"
+authors:
+  - name: 温铭
+title: Author
+url: https://github.com/moonming
+image_url: https://avatars.githubusercontent.com/u/26448043
+keywords:
+  - Ingress controller
+  - 开源 API 网关
+  - API 管理平台
+  - Apache APISIX
+description: 本文从多个角度(在开发人员中的受欢迎程度、开源许可证、性能和整个生态系统)对比多个 API 网关(Kong、Tyk、Gloo)。
+tags: [Technology]
+image: https://static-site.apiseven.com/wp-content/uploads/2022/09/APISIX.webp
+---
+
+> 本文首发于 
[API7.ai](https://www.apiseven.com/blog/why-is-apache-apisix-the-best-api-gateway),从多个角度(在开发人员中的受欢迎程度、开源许可证、性能和整个生态系统)对比多个
 API 网关(Kong、Tyk、Gloo)。
+
+
+
+
+  https://www.apiseven.com/blog/why-is-apache-apisix-the-best-api-gateway"; 
/>
+
+
+今天,我们可以通过手机和各种 APP 完成各种各样的事情,比如社交,网购等。这些行为的背后,API 起到了关键的作用。作为 API 的使用者,我们并不关心 
API 的稳定、安全和高效,但是通过 API 提供数据服务的企业则需要选择一个合适的 API 网关,用来保证数千乃至数万的 API 为提供快速和安全的服务。
+
+在 CNCF 的 [API Gateway 
landscape](https://landscape.cncf.io/card-mode?category=api-gateway&grouping=category&sort=contributors)
 中有接近 20 个 API 网关的选型(不包括公有云厂商的产品),包括 Apache APISIX、Kong、Tyk 等等。
+
+很多网关都称自己是下一代 API 网关,是最受欢迎的开源 API 网关项目,那么事实如何呢?本文将通过开发者、知识产权和品牌、技术、生态等多个维度来看看 
Apache APISIX 为什么是下一代 API 网关?
+
+![API Gateway 
landscape](https://static.apiseven.com/2022/09/13/632052e8c6f34.png)
+
+## 工程师的眼睛是雪亮的
+
+工程师是 API 和 API 网关的使用者和开发者,更多工程师关注和参与的 API 网关项目,代表的就是技术的趋势。我们从 GitHub 
代码贡献者的维度,选取了 4 个开源 API 网关进行对比:Apache APISIX、Kong、Tyk 和 Gloo。
+
+![GitHub 贡献者统计图](https://static.apiseven.com/2022/09/13/632055a37ac26.png)
+
+Kong 和 Tyk 都是 2015 年之前开始研发的,Apache APISIX 和基于 Envoy 的 Gloo 是在 2019 
年左右开始研发的。从上图中的 [Github Contributor Over 
Time](https://git-contributor.com/?chart=contributorOverTime&repo=apache/apisix,solo-io/gloo,kong/kong,tyktechnologies/tyk)
 可以看出,Kong 经过近 7 年的发展已经有超过 250 个贡献者参与,远远超过了 Tyk 和 Gloo;而最年轻的 Apache APISIX,已经超过 
320 个贡献者,数量和增速都远超 Kong,成为最多开发者参与贡献的 API 网关项目。
+
+除了贡献者总数外,还有一个指标可以看到更深层次的数据:贡献者的月度活跃。下图展示了以上四个开源 API 网关的月度活跃的开发者数量:
+
+![月度活跃贡献者图](https://static.apiseven.com/2022/09/13/63205698e44f5.png)
+
+Tyk 的贡献者月活跃人数,长期都是在 5 个人左右,很少超过 10 个人;而 Kong 和 Gloo 的贡献者月活跃人数均在 10 到 20 之间浮动;而 
Apache APISIX 基本保持在 20 人以上,最高接近 40 人,是开发者最活跃的 API 网关。
+
+这四个开源 API 网关项目背后,都是有对应的商业化公司的,所以还有第三个指标数据,那就是开源项目贡献者和商业公司员工数的对比:
+
+| **API Gateway**  | **APISIX** | **Kong** | **Tyk** | **Gloo** |
+| :--: | :: | :--: | :-: | :--: |
+|  月度活跃人数  | 38 |20|8|24|
+| 公司成员(数据来自领英) |40+ |   500+   |  200+   |   100+   |
+
+当前(2022 年第三季度)Kong 和 Tyk 的开源投入比例(月度活跃贡献者/员工总数)是 4%,Gloo 是 24%,APISIX 则是接近 
100%。即使回到 2017 年,Kong 的月度活跃贡献者也在 5 个人左右。
+
+显而易见,开源项目 Apache APISIX 和它背后的商业化公司 API7.ai 从创建伊始,就保持了对于开源项目的持续投入,赢得了众多开发者的喜爱。
+
+## 开源协议:企业用户选择开源项目的首要考虑因素
+
+自从 MongoDB 修改了开源项目的 License 之后,在做基础软件的选型时,开源项目的 License 风险就是企业用户首要考虑的因素。
+
+从表面上看,Apache APISIX、Kong 和 Gloo 使用的都是商业友好的 Apache License Version 2.0,Tyk 
使用的是带有传染性的 Mozilla Public License Version 2.0。
+
+更深入的看,Kong、Gloo 和 Tyk 这三个都是完全由商业公司控制的开源项目,它们可以像 MongoDB 一样随时在新版本中修改 
License,限制公有云或者其他公司免费使用,进而要求你从开源用户转为付费客户来继续使用最新版本。
+
+没有人知道这样的事情是否会发生,以及发生的几率有多大。这种风险,就像达摩克利斯之剑一样,悬挂在企业用户的头上。
+
+在这种情况下,使用 Apache 软件基金会或者 CNCF 的开源项目是最明智的。而 Apache APISIX 是全球最大的软件基金会--Apache 
软件基金会的顶级项目,所有的代码和品牌都归属于 Apache 软件基金会,任何商业公司都不能控制 Apache APISIX 项目,也不可能修改开源项目的 
license。企业用户可以一直放心的使用,而不用担心收到律师和合规部门的问询邮件。
+
+## 性能测试对比
+
+在社区中经常会有用户提问:基于 Envoy 的 Gloo,和基于 NGINX 的 APISIX,谁的性能更胜一筹?
+虽然性能并不是选型中最重要的指标,但它确实是最直接的指标。下表的表格是 Apache APISIX 和 Gloo 的 Benchmark 
结果。从表格中可以看到,Apache APISIX 的 QPS 是 Gloo 的 4.6 倍,同时 Apache APISIX 的延迟还不到 Gloo 的 
7%。
+
+| **API Gateway** |  Apache APISIX 
  |   Gloo Edge 
   |
+| :-: | 
:--: | 
:: |
+| **QPS** |  59122 
  

[apisix] branch master updated: docs: refactor kubernetes discovery (#7944)

2022-09-20 Thread sylviasu
This is an automated email from the ASF dual-hosted git repository.

sylviasu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
 new 2d533a875 docs: refactor kubernetes discovery (#7944)
2d533a875 is described below

commit 2d533a875d736da0ddf9a1de06eeba03c648178f
Author: zhixiongdu 
AuthorDate: Wed Sep 21 08:48:22 2022 +0800

docs: refactor kubernetes discovery (#7944)

* docs: refactor kubernetes discovery

* Update docs/zh/latest/discovery/kubernetes.md

Co-authored-by: Sylvia <39793568+sylviab...@users.noreply.github.com>
---
 conf/config-default.yaml   |  43 +++-
 docs/en/latest/discovery/kubernetes.md | 196 +
 docs/zh/latest/discovery/kubernetes.md | 192 +---
 3 files changed, 392 insertions(+), 39 deletions(-)

diff --git a/conf/config-default.yaml b/conf/config-default.yaml
index 9c70d8ee0..80c8a3466 100755
--- a/conf/config-default.yaml
+++ b/conf/config-default.yaml
@@ -238,7 +238,6 @@ nginx_config: # config for render the 
template to generate n
   introspection: 10m
   access-tokens: 1m
   ext-plugin: 1m
-  kubernetes: 1m
   tars: 1m
 
 # HashiCorp Vault storage backend for sensitive data retrieval. The config 
shows an example of what APISIX expects if you
@@ -303,6 +302,10 @@ nginx_config: # config for render the 
template to generate n
 #   path: "logs/consul_kv.dump"
 #   expire: 2592000# unit sec, here is 30 day
 #  kubernetes:
+#### kubernetes service discovery both support single-cluster and 
multi-cluster mode
+#### applicable to the case where the service is distributed in a single 
or multiple kubernetes clusters.
+#
+#### single-cluster mode ###
 #service:
 #  schema: https #apiserver schema, options [http, 
https], default https
 #  host: ${KUBERNETES_SERVICE_HOST}  #apiserver host, options [ipv4, ipv6, 
domain, environment variable], default ${KUBERNETES_SERVICE_HOST}
@@ -332,6 +335,44 @@ nginx_config: # config for render the 
template to generate n
 ## for the expression of label_selector, please refer to 
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
 #label_selector: |-
 #  first="a",second="b"
+## reserved lua shared memory size,1m memory can store about 1000 pieces 
of endpoint
+#shared_size: 1m #default 1m
+#### single-cluster mode ###
+#
+#### multi-cluster mode ###
+#  - id: release  # a custom name refer to the cluster, pattern ^[a-z0-9]{1,8}
+#service:
+#  schema: https #apiserver schema, options [http, 
https], default https
+#  host: ${KUBERNETES_SERVICE_HOST}  #apiserver host, options [ipv4, ipv6, 
domain, environment variable]
+#  port: ${KUBERNETES_SERVICE_PORT}  #apiserver port, options [port 
number, environment variable]
+#client:
+#  # serviceaccount token or path of serviceaccount token_file
+#  token_file: ${KUBERNETES_CLIENT_TOKEN_FILE}
+#  # token: |-
+#   # 
eyJhbGciOiJSUzI1NiIsImtpZCI6Ikx5ME1DNWdnbmhQNkZCNlZYMXBsT3pYU3BBS2swYzBPSkN3ZnBESGpkUEEif
+#   # 
6Ikx5ME1DNWdnbmhQNkZCNlZYMXBsT3pYU3BBS2swYzBPSkN3ZnBESGpkUEEifeyJhbGciOiJSUzI1NiIsImtpZCI
+## kubernetes discovery plugin support use namespace_selector
+## you can use one of [equal, not_equal, match, not_match] filter namespace
+#namespace_selector:
+#  # only save endpoints with namespace equal default
+#  equal: default
+#  # only save endpoints with namespace not equal default
+#  #not_equal: default
+#  # only save endpoints with namespace match one of [default, ^my-[a-z]+$]
+#  #match:
+#  #- default
+#  #- ^my-[a-z]+$
+#  # only save endpoints with namespace not match one of [default, 
^my-[a-z]+$ ]
+#  #not_match:
+#  #- default
+#  #- ^my-[a-z]+$
+## kubernetes discovery plugin support use label_selector
+## for the expression of label_selector, please refer to 
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
+#label_selector: |-
+#  first="a",second="b"
+## reserved lua shared memory size,1m memory can store about 1000 pieces 
of endpoint
+#shared_size: 1m #default 1m
+#### multi-cluster mode ###
 
 graphql:
   max_size: 1048576   # the maximum size limitation of graphql in 
bytes, default 1MiB
diff --git a/docs/en/latest/discovery/kubernetes.md 
b/docs/en/latest/discovery/kubernetes.md
index eb931ba35..d95cdcceb 100644
--- a/docs/en/latest/discovery/kubernetes.md
+++ b/docs/en/latest/discovery/kubernetes.md
@@ -24,12 +24,17 @@ title: Kubernetes
 ## Summary
 
 The [_Kubernetes_](https://kubernetes.io/) service discovery 
[_List-Watch_](htt

  1   2   >