This is an automated email from the ASF dual-hosted git repository.
wenming pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-apisix.git
The following commit(s) were added to refs/heads/master by this push:
new c8a00b1 doc: add usage about global ruls (#1211)
c8a00b1 is described below
commit c8a00b1152d3a1466346e37fdbe7bec68be48f13
Author: Vinci Xu <[email protected]>
AuthorDate: Sat Mar 7 19:52:55 2020 +0800
doc: add usage about global ruls (#1211)
---
README.md | 2 +-
README_CN.md | 2 +-
doc/architecture-design-cn.md | 29 +++++++++++++++++++++++++++++
doc/architecture-design.md | 29 +++++++++++++++++++++++++++++
4 files changed, 60 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index a84b637..fb64b54 100644
--- a/README.md
+++ b/README.md
@@ -99,7 +99,7 @@ A/B testing, canary release, blue-green deployment, limit
rate, defense against
- Version Control: Supports rollbacks of operations.
- CLI: start\stop\reload APISIX through the command line.
- [Stand-alone mode](doc/stand-alone.md): Supports to load route rules
from local yaml file, it is more friendly such as under the kubernetes(k8s).
- - Global Rule: Allows to run any plugin for all request, eg: limit rate,
IP filter etc.
+ - [Global Rule](doc/architecture-design.md#Global-Rule): Allows to run any
plugin for all request, eg: limit rate, IP filter etc.
- High performance: The single-core QPS reaches 18k with an average delay
of less than 0.2 milliseconds.
- [Fault Injection](doc/plugins/fault-injection.md)
- [REST Admin API](doc/admin-api.md)
diff --git a/README_CN.md b/README_CN.md
index ab7290c..10c658a 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -99,7 +99,7 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵
- 版本控制:支持操作的多次回滚。
- CLI: 使用命令行来启动、关闭和重启 APISIX。
- [单机模式](doc/stand-alone-cn.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s)
等环境下更友好。
- - 全局规则:允许对所有请求执行插件,比如黑白名单、限流限速等。
+ -
[全局规则](doc/architecture-design-cn.md#Global-Rule):允许对所有请求执行插件,比如黑白名单、限流限速等。
- 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
- [故障注入](doc/plugins/fault-injection-cn.md)
- [REST Admin API](doc/admin-api-cn.md)
diff --git a/doc/architecture-design-cn.md b/doc/architecture-design-cn.md
index 0747151..b212b0f 100644
--- a/doc/architecture-design-cn.md
+++ b/doc/architecture-design-cn.md
@@ -26,6 +26,7 @@
- [**Upstream**](#upstream)
- [**Router**](#router)
- [**Consumer**](#consumer)
+- [**Global Rule**](#Global-Rule)
- [**Debug mode**](#Debug-mode)
## APISIX
@@ -529,6 +530,34 @@ HTTP/1.1 503 Service Temporarily Unavailable
[返回目录](#目录)
+## Global Rule
+[Plugin](#Plugin) 只能绑定在 [Service](#Service) 或者 [Route](#Route)
上,如果我们需要一个能作用于所有请求的 [Plugin](#Plugin) 该怎么办呢?
+这时候我们可以使用 `GlobalRule` 来注册一个全局的 [Plugin](#Plugin):
+```shell
+curl -X PUT \
+ https://{apisix_listen_address}/apisix/admin/global_rules/1 \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "plugins": {
+ "limit-count": {
+ "time_window": 60,
+ "policy": "local",
+ "count": 2,
+ "key": "remote_addr",
+ "rejected_code": 503
+ }
+ }
+ }'
+```
+如上所注册的 `limit-count` 插件将会作用于所有的请求。
+
+我们可以通过以下接口查看所有的 `GlobalRule`:
+```shell
+curl https://{apisix_listen_address}/apisix/admin/global_rules
+```
+
+[返回目录](#目录)
+
## Debug mode
### 基本调试模式
diff --git a/doc/architecture-design.md b/doc/architecture-design.md
index 3a312f7..d5e7645 100644
--- a/doc/architecture-design.md
+++ b/doc/architecture-design.md
@@ -28,6 +28,7 @@
- [**Upstream**](#upstream)
- [**Router**](#router)
- [**Consumer**](#consumer)
+- [**Global Rule**](#Global-Rule)
- [**Debug mode**](#Debug-mode)
## APISIX
@@ -518,6 +519,34 @@ HTTP/1.1 503 Service Temporarily Unavailable
[Back to top](#Table-of-contents)
+## Global Rule
+[Plugin](#Plugin) just can be binded to [Service](#Service) or
[Route](#Route), if we want a [Plugin](#Plugin) work on all requests, how to do
it?
+We can register a global [Plugin](#Plugin) with `GlobalRule`:
+```shell
+curl -X PUT \
+ https://{apisix_listen_address}/apisix/admin/global_rules/1 \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "plugins": {
+ "limit-count": {
+ "time_window": 60,
+ "policy": "local",
+ "count": 2,
+ "key": "remote_addr",
+ "rejected_code": 503
+ }
+ }
+ }'
+```
+Now, the `limit-count` plugin will work on all requets
+
+we can list all `GlobalRule` via admin api as below:
+```shell
+curl https://{apisix_listen_address}/apisix/admin/global_rules
+```
+
+[Back to top](#Table-of-contents)
+
## Debug mode
### Basic Debug Mode