You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2022/03/17 08:00:58 UTC

[GitHub] [apisix] yzeng25 commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

yzeng25 commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828781535



##########
File path: docs/zh/latest/README.md
##########
@@ -44,117 +44,117 @@ Apache APISIX 的技术架构如下图所示:
 - ![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAPISIX?style=social) - 使用标签 `#ApacheAPISIX` 关注我们并与我们互动。
 - [哔哩哔哩](https://space.bilibili.com/551921247)
 - **新手任务列表**
-  - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
 - **微信公众号**
-   <br/>![wechat official account](../../assets/images/OA.jpg)
+  <br/>![wechat official account](../../assets/images/OA.jpg)
 - **微信视频号**
-   <br/>![wechat video account](../../assets/images/MA.jpeg)
+  <br/>![wechat video account](../../assets/images/MA.jpeg)
 
 ## 特性
 
 你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
-A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+A/B 测试、金丝雀发布 (灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。

Review comment:
       ```suggestion
   A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
   ```

##########
File path: docs/zh/latest/README.md
##########
@@ -44,117 +44,117 @@ Apache APISIX 的技术架构如下图所示:
 - ![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAPISIX?style=social) - 使用标签 `#ApacheAPISIX` 关注我们并与我们互动。
 - [哔哩哔哩](https://space.bilibili.com/551921247)
 - **新手任务列表**
-  - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
 - **微信公众号**
-   <br/>![wechat official account](../../assets/images/OA.jpg)
+  <br/>![wechat official account](../../assets/images/OA.jpg)
 - **微信视频号**
-   <br/>![wechat video account](../../assets/images/MA.jpeg)
+  <br/>![wechat video account](../../assets/images/MA.jpeg)
 
 ## 特性
 
 你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
-A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+A/B 测试、金丝雀发布 (灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
 
 - **全平台**
 
-  - 云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
-  - 支持 ARM64: 不用担心底层技术的锁定。
+    - 云原生:平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
+    - 支持 ARM64: 不用担心底层技术的锁定。
 
 - **多协议**
 
-  - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
-  - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
-  - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
-  - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
-  - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
-  - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
-  - Websocket 代理
-  - Proxy Protocol
-  - HTTP(S) 反向代理
-  - [SSL](certificate.md):动态加载 SSL 证书。
+    - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
+    - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
+    - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
+    - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
+    - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
+    - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
+    - Websocket 代理
+    - Proxy Protocol
+    - HTTP(S) 反向代理
+    - [SSL](certificate.md):动态加载 SSL 证书。
 
 - **全动态能力**
 
-  - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
-  - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
-  - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
-  - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
-  - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
-  - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
-  - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
-  - 熔断器: 智能跟踪不健康上游服务。
-  - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
-  - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
+    - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
+    - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
+    - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
+    - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
+    - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
+    - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
+    - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
+    - 熔断器:智能跟踪不健康上游服务。
+    - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
+    - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
 
 - **精细化路由**
 
-  - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
-  - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
-  - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
-  - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
-  - IPv6:支持使用 IPv6 格式匹配路由
-  - 支持路由的[自动过期(TTL)](admin-api.md#route)
-  - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
-  - [支持批量 Http 请求](plugins/batch-requests.md)
-  - [支持通过GraphQL属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
+    - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
+    - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
+    - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
+    - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
+    - IPv6:支持使用 IPv6 格式匹配路由
+    - 支持路由的[自动过期 (TTL)](admin-api.md#route)
+    - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
+    - [支持批量 Http 请求](plugins/batch-requests.md)
+    - [支持通过 GraphQL 属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
 
 - **安全防护**
 
-  - 多种身份认证方式: [key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
-  - [IP 黑白名单](plugins/ip-restriction.md)
-  - [Referer 黑白名单](plugins/referer-restriction.md)
-  - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
-  - [限制速率](plugins/limit-req.md)
-  - [限制请求数](plugins/limit-count.md)
-  - [限制并发](plugins/limit-conn.md)
-  - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
-  - [CORS](plugins/cors.md):为你的 API 启用 CORS。
-  - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
-  - [请求验证器](plugins/request-validation.md)。
-  - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
+    - 多种身份认证方式:[key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
+    - [IP 黑白名单](plugins/ip-restriction.md)
+    - [Referer 黑白名单](plugins/referer-restriction.md)
+    - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
+    - [限制速率](plugins/limit-req.md)
+    - [限制请求数](plugins/limit-count.md)
+    - [限制并发](plugins/limit-conn.md)
+    - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
+    - [CORS](plugins/cors.md):为你的 API 启用 CORS。
+    - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
+    - [请求验证器](plugins/request-validation.md)。
+    - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
 
 - **运维友好**
 
-  - OpenTracing 可观测性: 支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
-  - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
-  - 监控和指标: [Prometheus](plugins/prometheus.md)
-  - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
-  - 高可用:支持配置同一个集群内的多个 etcd 地址。
-  - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
-  - 版本控制:支持操作的多次回滚。
-  - CLI: 使用命令行来启动、关闭和重启 APISIX。
-  - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
-  - [全局规则](architecture-design/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。
-  - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
-  - [故障注入](plugins/fault-injection.md)
-  - [REST Admin API](admin-api.md): 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 `conf/config.yaml` 中的 `allow_admin` 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,**在部署前需要修改 `conf/config.yaml` 中的 `admin_key` 字段,来保证安全。**
-  - 外部日志记录器:将访问日志导出到外部日志管理工具。([HTTP Logger](plugins/http-logger.md)、[TCP Logger](plugins/tcp-logger.md)、[Kafka Logger](plugins/kafka-logger.md)、[UDP Logger](plugins/udp-logger.md)、[RocketMQ Logger](plugins/rocketmq-logger.md)、[SkyWalking Logger](plugins/skywalking-logger.md)、[Alibaba Cloud Logging(SLS)](plugins/sls-logger.md)、[Google Cloud Logging](plugins/google-cloud-logging.md)、[Splunk HEC Logging](plugins/splunk-hec-logging.md)、[File Logger](plugins/file-logger.md))
-  - [Helm charts](https://github.com/apache/apisix-helm-chart)
+    - OpenTracing 可观测性:支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
+    - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
+    - 监控和指标:[Prometheus](plugins/prometheus.md)
+    - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
+    - 高可用:支持配置同一个集群内的多个 etcd 地址。
+    - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
+    - 版本控制:支持操作的多次回滚。
+    - CLI: 使用命令行来启动、关闭和重启 APISIX。

Review comment:
       ```suggestion
       - CLI:使用命令行来启动、关闭和重启 APISIX。
   ```

##########
File path: docs/zh/latest/architecture-design/router.md
##########
@@ -27,7 +27,7 @@ APISIX 区别于其他 API 网关的一大特点是允许用户选择不同 Rout
 
 - `apisix.router.http`: HTTP 请求路由。
 
-  - `radixtree_uri`: (默认)只使用 `uri` 作为主索引。基于 `radixtree` 引擎,支持全量和深前缀匹配,更多见 [如何使用 router-radixtree](../../../en/latest/router-radixtree.md)。
+  - `radixtree_uri`:(默认)只使用 `uri` 作为主索引。基于 `radixtree` 引擎,支持全量和深前缀匹配,更多见 [如何使用 router-radixtree](../../../en/latest/router-radixtree.md)。

Review comment:
       ```suggestion
     - `radixtree_uri`:默认)只使用 `uri` 作为主索引。基于 `radixtree` 引擎,支持全量和深前缀匹配,更多见 [如何使用 router-radixtree](../../../en/latest/router-radixtree.md)。
   ```

##########
File path: docs/zh/latest/benchmark.md
##########
@@ -39,13 +39,13 @@ title: 压力测试
 
 #### 延时
 
-请注意 y 轴延时的单位是**微秒(μs)**,而不是毫秒:
+请注意 y 轴延时的单位是**微秒 (μs)**,而不是毫秒:

Review comment:
       ```suggestion
   请注意 y 轴延时的单位是**微秒 (μs)**,而不是毫秒:
   ```

##########
File path: docs/zh/latest/plugins/api-breaker.md
##########
@@ -29,15 +29,15 @@ title: api-breaker
 
 由代码逻辑自动按**触发不健康状态**的次数递增运算:
 
-每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码(比如:500),达到 `unhealthy.failures` 次时(比如:3 次),认为上游服务处于不健康状态。
+每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码 (比如:500),达到 `unhealthy.failures` 次时 (比如:3 次),认为上游服务处于不健康状态。
 
 第一次触发不健康状态,**熔断 2 秒**。
 
 然后,2 秒过后重新开始转发请求到上游服务,如果继续返回 `unhealthy.http_statuses` 状态码,记数再次达到 `unhealthy.failures` 次时,**熔断 4 秒**(倍数方式)。
 
-依次类推,2, 4, 8, 16, 32, 64, ..., 256, 最大到 300。 300 是 `max_breaker_sec` 的最大值,允许自定义修改。
+依次类推,2, 4, 8, 16, 32, 64, ..., 256,最大到 300。 300 是 `max_breaker_sec` 的最大值,允许自定义修改。
 
-在不健康状态时,当转发请求到上游服务并返回 `healthy.http_statuses` 配置中的状态码(比如:200),达到 `healthy.successes` 次时(比如:3 次),认为上游服务恢复健康状态。
+在不健康状态时,当转发请求到上游服务并返回 `healthy.http_statuses` 配置中的状态码 (比如:200),达到 `healthy.successes` 次时 (比如:3 次),认为上游服务恢复健康状态。

Review comment:
       ```suggestion
   在不健康状态时,当转发请求到上游服务并返回 `healthy.http_statuses` 配置中的状态码(比如:200),达到 `healthy.successes` 次时(比如:3 次),认为上游服务恢复健康状态。
   ```

##########
File path: docs/zh/latest/plugins/csrf.md
##########
@@ -32,7 +32,7 @@ title: csrf
 | Name             | Type    | Requirement | Default | Valid | Description                                                  |
 | ---------------- | ------- | ----------- | ------- | ----- | ------------------------------------------------------------ |
 |   name   |  string |    optional    | `apisix-csrf-token`  |    | 生成的 Cookie 中的 token 的名字,需要使用这个名字在请求头携带 Cookie 中的内容 |
-| expires |  number | optional | `7200` | | CSRF Cookie 的过期时间(秒) |
+| expires |  number | optional | `7200` | | CSRF Cookie 的过期时间 (秒) |

Review comment:
       ```suggestion
   | expires |  number | optional | `7200` | | CSRF Cookie 的过期时间(秒) |
   ```

##########
File path: docs/zh/latest/plugins/response-rewrite.md
##########
@@ -27,7 +27,7 @@ title: response-rewrite
 
 使用场景:
 
-1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS (跨域资源共享)的功能。
+1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS(跨域资源共享)的功能。
 
 2、另外也可以通过配置 status_code 和 header 里面的 Location 来实现重定向,当然如果只是需要重定向功能,最好使用 [redirect](redirect.md) 插件。

Review comment:
       ```suggestion
   2. 另外也可以通过配置 status_code 和 header 里面的 Location 来实现重定向,当然如果只是需要重定向功能,最好使用 [redirect](redirect.md) 插件。
   ```

##########
File path: docs/zh/latest/plugins/response-rewrite.md
##########
@@ -27,7 +27,7 @@ title: response-rewrite
 
 使用场景:
 
-1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS (跨域资源共享)的功能。
+1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS(跨域资源共享)的功能。

Review comment:
       ```suggestion
   1. 可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS(跨域资源共享)的功能。
   ```

##########
File path: docs/zh/latest/README.md
##########
@@ -44,117 +44,117 @@ Apache APISIX 的技术架构如下图所示:
 - ![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAPISIX?style=social) - 使用标签 `#ApacheAPISIX` 关注我们并与我们互动。
 - [哔哩哔哩](https://space.bilibili.com/551921247)
 - **新手任务列表**
-  - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
 - **微信公众号**
-   <br/>![wechat official account](../../assets/images/OA.jpg)
+  <br/>![wechat official account](../../assets/images/OA.jpg)
 - **微信视频号**
-   <br/>![wechat video account](../../assets/images/MA.jpeg)
+  <br/>![wechat video account](../../assets/images/MA.jpeg)
 
 ## 特性
 
 你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
-A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+A/B 测试、金丝雀发布 (灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
 
 - **全平台**
 
-  - 云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
-  - 支持 ARM64: 不用担心底层技术的锁定。
+    - 云原生:平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
+    - 支持 ARM64: 不用担心底层技术的锁定。
 
 - **多协议**
 
-  - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
-  - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
-  - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
-  - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
-  - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
-  - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
-  - Websocket 代理
-  - Proxy Protocol
-  - HTTP(S) 反向代理
-  - [SSL](certificate.md):动态加载 SSL 证书。
+    - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
+    - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
+    - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
+    - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
+    - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
+    - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
+    - Websocket 代理
+    - Proxy Protocol
+    - HTTP(S) 反向代理
+    - [SSL](certificate.md):动态加载 SSL 证书。
 
 - **全动态能力**
 
-  - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
-  - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
-  - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
-  - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
-  - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
-  - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
-  - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
-  - 熔断器: 智能跟踪不健康上游服务。
-  - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
-  - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
+    - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
+    - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
+    - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
+    - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
+    - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
+    - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
+    - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
+    - 熔断器:智能跟踪不健康上游服务。
+    - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
+    - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
 
 - **精细化路由**
 
-  - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
-  - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
-  - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
-  - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
-  - IPv6:支持使用 IPv6 格式匹配路由
-  - 支持路由的[自动过期(TTL)](admin-api.md#route)
-  - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
-  - [支持批量 Http 请求](plugins/batch-requests.md)
-  - [支持通过GraphQL属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
+    - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
+    - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
+    - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
+    - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
+    - IPv6:支持使用 IPv6 格式匹配路由
+    - 支持路由的[自动过期 (TTL)](admin-api.md#route)
+    - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
+    - [支持批量 Http 请求](plugins/batch-requests.md)
+    - [支持通过 GraphQL 属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
 
 - **安全防护**
 
-  - 多种身份认证方式: [key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
-  - [IP 黑白名单](plugins/ip-restriction.md)
-  - [Referer 黑白名单](plugins/referer-restriction.md)
-  - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
-  - [限制速率](plugins/limit-req.md)
-  - [限制请求数](plugins/limit-count.md)
-  - [限制并发](plugins/limit-conn.md)
-  - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
-  - [CORS](plugins/cors.md):为你的 API 启用 CORS。
-  - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
-  - [请求验证器](plugins/request-validation.md)。
-  - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
+    - 多种身份认证方式:[key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
+    - [IP 黑白名单](plugins/ip-restriction.md)
+    - [Referer 黑白名单](plugins/referer-restriction.md)
+    - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
+    - [限制速率](plugins/limit-req.md)
+    - [限制请求数](plugins/limit-count.md)
+    - [限制并发](plugins/limit-conn.md)
+    - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
+    - [CORS](plugins/cors.md):为你的 API 启用 CORS。
+    - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
+    - [请求验证器](plugins/request-validation.md)。
+    - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
 
 - **运维友好**
 
-  - OpenTracing 可观测性: 支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
-  - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
-  - 监控和指标: [Prometheus](plugins/prometheus.md)
-  - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
-  - 高可用:支持配置同一个集群内的多个 etcd 地址。
-  - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
-  - 版本控制:支持操作的多次回滚。
-  - CLI: 使用命令行来启动、关闭和重启 APISIX。
-  - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
-  - [全局规则](architecture-design/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。
-  - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
-  - [故障注入](plugins/fault-injection.md)
-  - [REST Admin API](admin-api.md): 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 `conf/config.yaml` 中的 `allow_admin` 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,**在部署前需要修改 `conf/config.yaml` 中的 `admin_key` 字段,来保证安全。**
-  - 外部日志记录器:将访问日志导出到外部日志管理工具。([HTTP Logger](plugins/http-logger.md)、[TCP Logger](plugins/tcp-logger.md)、[Kafka Logger](plugins/kafka-logger.md)、[UDP Logger](plugins/udp-logger.md)、[RocketMQ Logger](plugins/rocketmq-logger.md)、[SkyWalking Logger](plugins/skywalking-logger.md)、[Alibaba Cloud Logging(SLS)](plugins/sls-logger.md)、[Google Cloud Logging](plugins/google-cloud-logging.md)、[Splunk HEC Logging](plugins/splunk-hec-logging.md)、[File Logger](plugins/file-logger.md))
-  - [Helm charts](https://github.com/apache/apisix-helm-chart)
+    - OpenTracing 可观测性:支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
+    - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
+    - 监控和指标:[Prometheus](plugins/prometheus.md)
+    - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
+    - 高可用:支持配置同一个集群内的多个 etcd 地址。
+    - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
+    - 版本控制:支持操作的多次回滚。
+    - CLI: 使用命令行来启动、关闭和重启 APISIX。
+    - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。

Review comment:
       ```suggestion
       - [单机模式](stand-alone.md):支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
   ```

##########
File path: docs/zh/latest/architecture-design/router.md
##########
@@ -36,4 +36,4 @@ APISIX 区别于其他 API 网关的一大特点是允许用户选择不同 Rout
   - `radixtree_host_uri`: 使用 `host + uri` 作为主索引(基于 `radixtree` 引擎),对当前请求会同时匹配 host 和 uri,支持的匹配条件与 `radixtree_uri` 基本一致。
 
 - `apisix.router.ssl`: SSL 加载匹配路由。
-  - `radixtree_sni`: (默认)使用 `SNI` (Server Name Indication) 作为主索引(基于 radixtree 引擎)。
+  - `radixtree_sni`:(默认)使用 `SNI` (Server Name Indication) 作为主索引(基于 radixtree 引擎)。

Review comment:
       ```suggestion
     - `radixtree_sni`:(默认)使用 `SNI` (Server Name Indication) 作为主索引(基于 radixtree 引擎)。
   ```

##########
File path: docs/zh/latest/admin-api.md
##########
@@ -71,7 +71,7 @@ Admin API 是为 Apache APISIX 服务的一组 API,我们可以将参数传递
 | desc             | 可选                               | 辅助     | 标识描述、使用场景等。                                                                                                                                                                                                                                                                                                                                     | 路由 xxxx                                            |
 | host             | 可选,不能与 `hosts` 一起使用         | 匹配规则 | 当前请求域名,比如 `foo.com`;也支持泛域名,比如 `*.foo.com`。                                                                                                                                                                                                                                                                                             | "foo.com"                                            |
 | hosts            | 可选,不能与 `host` 一起使用          | 匹配规则 | 非空列表形态的 `host`,表示允许有多个不同 `host`,匹配其中任意一个即可。                                                                                                                                                                                                                                                                                   | ["foo.com", "\*.bar.com"]                            |
-| remote_addr      | 可选,不能与 `remote_addrs` 一起使用  | 匹配规则 | 客户端请求 IP 地址: `192.168.1.101`、`192.168.1.102` 以及 CIDR 格式的支持 `192.168.1.0/24`。特别的,APISIX 也完整支持 IPv6 地址匹配:`::1`,`fe80::1`, `fe80::1/64` 等。                                                                                                                                                                                   | "192.168.1.0/24"                                     |
+| remote_addr      | 可选,不能与 `remote_addrs` 一起使用  | 匹配规则 | 客户端请求 IP 地址:`192.168.1.101`、`192.168.1.102` 以及 CIDR 格式的支持 `192.168.1.0/24`。特别的,APISIX 也完整支持 IPv6 地址匹配:`::1`,`fe80::1`, `fe80::1/64` 等。                                                                                                                                                                                   | "192.168.1.0/24"                                     |
 | remote_addrs     | 可选,不能与 `remote_addr` 一起使用   | 匹配规则 | 非空列表形态的 `remote_addr`,表示允许有多个不同 IP 地址,符合其中任意一个即可。                                                                                                                                                                                                                                                                           | ["127.0.0.1", "192.0.0.0/8", "::1"]                  |
 | methods          | 可选                               | 匹配规则 | 如果为空或没有该选项,代表没有任何 `method` 限制,也可以是一个或多个的组合:`GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`,`CONNECT`,`TRACE`。                                                                                                                                                                                               | ["GET", "POST"]                                      |

Review comment:
       ```suggestion
   | methods          | 可选                               | 匹配规则 | 如果为空或没有该选项,代表没有任何 `method` 限制,也可以是一个或多个的组合:`GET`,`POST`,`PUT`,`DELETE`,`PATCH`,`HEAD`,`OPTIONS`,`CONNECT`,`TRACE`。                                                                                                                                                                                               | ["GET", "POST"]                                      |
   ```

##########
File path: docs/zh/latest/certificate.md
##########
@@ -23,7 +23,7 @@ title: 证书
 
 `APISIX` 支持通过 TLS 扩展 SNI 实现加载特定的 SSL 证书以实现对 https 的支持。
 
-SNI(Server Name Indication)是用来改善 SSL 和 TLS 的一项特性,它允许客户端在服务器端向其发送证书之前向服务器端发送请求的域名,服务器端根据客户端请求的域名选择合适的 SSL 证书发送给客户端。
+SNI(Server Name Indication) 是用来改善 SSL 和 TLS 的一项特性,它允许客户端在服务器端向其发送证书之前向服务器端发送请求的域名,服务器端根据客户端请求的域名选择合适的 SSL 证书发送给客户端。

Review comment:
       ```suggestion
   SNI(Server Name Indication)是用来改善 SSL 和 TLS 的一项特性,它允许客户端在服务器端向其发送证书之前向服务器端发送请求的域名,服务器端根据客户端请求的域名选择合适的 SSL 证书发送给客户端。
   ```

##########
File path: docs/zh/latest/control-api.md
##########
@@ -86,7 +86,7 @@ APISIX 中一些插件添加了自己的 control API。如果你对他们感兴
 }
 ```
 
-只有启用了的插件才会被包含在返回结果中 `plugins` 部分。(返回结果中的)一些插件可能会缺失如 `consumer_schema` 或者 `type` 字段,这取决于插件的定义。
+只有启用了的插件才会被包含在返回结果中 `plugins` 部分。(返回结果中的) 一些插件可能会缺失如 `consumer_schema` 或者 `type` 字段,这取决于插件的定义。

Review comment:
       ```suggestion
   只有启用了的插件才会被包含在返回结果中 `plugins` 部分。(返回结果中的)一些插件可能会缺失如 `consumer_schema` 或者 `type` 字段,这取决于插件的定义。
   ```

##########
File path: docs/zh/latest/README.md
##########
@@ -44,117 +44,117 @@ Apache APISIX 的技术架构如下图所示:
 - ![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAPISIX?style=social) - 使用标签 `#ApacheAPISIX` 关注我们并与我们互动。
 - [哔哩哔哩](https://space.bilibili.com/551921247)
 - **新手任务列表**
-  - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
 - **微信公众号**
-   <br/>![wechat official account](../../assets/images/OA.jpg)
+  <br/>![wechat official account](../../assets/images/OA.jpg)
 - **微信视频号**
-   <br/>![wechat video account](../../assets/images/MA.jpeg)
+  <br/>![wechat video account](../../assets/images/MA.jpeg)
 
 ## 特性
 
 你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
-A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+A/B 测试、金丝雀发布 (灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
 
 - **全平台**
 
-  - 云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
-  - 支持 ARM64: 不用担心底层技术的锁定。
+    - 云原生:平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
+    - 支持 ARM64: 不用担心底层技术的锁定。
 
 - **多协议**
 
-  - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
-  - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
-  - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
-  - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
-  - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
-  - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
-  - Websocket 代理
-  - Proxy Protocol
-  - HTTP(S) 反向代理
-  - [SSL](certificate.md):动态加载 SSL 证书。
+    - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
+    - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
+    - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
+    - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
+    - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
+    - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
+    - Websocket 代理
+    - Proxy Protocol
+    - HTTP(S) 反向代理
+    - [SSL](certificate.md):动态加载 SSL 证书。
 
 - **全动态能力**
 
-  - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
-  - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
-  - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
-  - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
-  - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
-  - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
-  - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
-  - 熔断器: 智能跟踪不健康上游服务。
-  - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
-  - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
+    - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
+    - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
+    - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
+    - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
+    - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
+    - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
+    - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
+    - 熔断器:智能跟踪不健康上游服务。
+    - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
+    - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
 
 - **精细化路由**
 
-  - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
-  - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
-  - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
-  - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
-  - IPv6:支持使用 IPv6 格式匹配路由
-  - 支持路由的[自动过期(TTL)](admin-api.md#route)
-  - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
-  - [支持批量 Http 请求](plugins/batch-requests.md)
-  - [支持通过GraphQL属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
+    - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
+    - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
+    - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
+    - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
+    - IPv6:支持使用 IPv6 格式匹配路由
+    - 支持路由的[自动过期 (TTL)](admin-api.md#route)
+    - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
+    - [支持批量 Http 请求](plugins/batch-requests.md)
+    - [支持通过 GraphQL 属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
 
 - **安全防护**
 
-  - 多种身份认证方式: [key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
-  - [IP 黑白名单](plugins/ip-restriction.md)
-  - [Referer 黑白名单](plugins/referer-restriction.md)
-  - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
-  - [限制速率](plugins/limit-req.md)
-  - [限制请求数](plugins/limit-count.md)
-  - [限制并发](plugins/limit-conn.md)
-  - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
-  - [CORS](plugins/cors.md):为你的 API 启用 CORS。
-  - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
-  - [请求验证器](plugins/request-validation.md)。
-  - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
+    - 多种身份认证方式:[key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
+    - [IP 黑白名单](plugins/ip-restriction.md)
+    - [Referer 黑白名单](plugins/referer-restriction.md)
+    - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
+    - [限制速率](plugins/limit-req.md)
+    - [限制请求数](plugins/limit-count.md)
+    - [限制并发](plugins/limit-conn.md)
+    - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
+    - [CORS](plugins/cors.md):为你的 API 启用 CORS。
+    - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
+    - [请求验证器](plugins/request-validation.md)。
+    - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
 
 - **运维友好**
 
-  - OpenTracing 可观测性: 支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
-  - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
-  - 监控和指标: [Prometheus](plugins/prometheus.md)
-  - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
-  - 高可用:支持配置同一个集群内的多个 etcd 地址。
-  - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
-  - 版本控制:支持操作的多次回滚。
-  - CLI: 使用命令行来启动、关闭和重启 APISIX。
-  - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
-  - [全局规则](architecture-design/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。
-  - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
-  - [故障注入](plugins/fault-injection.md)
-  - [REST Admin API](admin-api.md): 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 `conf/config.yaml` 中的 `allow_admin` 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,**在部署前需要修改 `conf/config.yaml` 中的 `admin_key` 字段,来保证安全。**
-  - 外部日志记录器:将访问日志导出到外部日志管理工具。([HTTP Logger](plugins/http-logger.md)、[TCP Logger](plugins/tcp-logger.md)、[Kafka Logger](plugins/kafka-logger.md)、[UDP Logger](plugins/udp-logger.md)、[RocketMQ Logger](plugins/rocketmq-logger.md)、[SkyWalking Logger](plugins/skywalking-logger.md)、[Alibaba Cloud Logging(SLS)](plugins/sls-logger.md)、[Google Cloud Logging](plugins/google-cloud-logging.md)、[Splunk HEC Logging](plugins/splunk-hec-logging.md)、[File Logger](plugins/file-logger.md))
-  - [Helm charts](https://github.com/apache/apisix-helm-chart)
+    - OpenTracing 可观测性:支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
+    - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
+    - 监控和指标:[Prometheus](plugins/prometheus.md)
+    - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
+    - 高可用:支持配置同一个集群内的多个 etcd 地址。
+    - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
+    - 版本控制:支持操作的多次回滚。
+    - CLI: 使用命令行来启动、关闭和重启 APISIX。
+    - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
+    - [全局规则](architecture-design/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。
+    - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
+    - [故障注入](plugins/fault-injection.md)
+    - [REST Admin API](admin-api.md): 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 `conf/config.yaml` 中的 `allow_admin` 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,**在部署前需要修改 `conf/config.yaml` 中的 `admin_key` 字段,来保证安全。**
+    - 外部日志记录器:将访问日志导出到外部日志管理工具。([HTTP Logger](plugins/http-logger.md)、[TCP Logger](plugins/tcp-logger.md)、[Kafka Logger](plugins/kafka-logger.md)、[UDP Logger](plugins/udp-logger.md)、[RocketMQ Logger](plugins/rocketmq-logger.md)、[SkyWalking Logger](plugins/skywalking-logger.md)、[Alibaba Cloud Logging(SLS)](plugins/sls-logger.md)、[Google Cloud Logging](plugins/google-cloud-logging.md)、[Splunk HEC Logging](plugins/splunk-hec-logging.md)、[File Logger](plugins/file-logger.md))
+    - [Helm charts](https://github.com/apache/apisix-helm-chart)
 
 - **高度可扩展**
-  - [自定义插件](plugin-develop.md): 允许挂载常见阶段,例如`init`, `rewrite`,`access`,`balancer`,`header filter`,`body filter` 和 `log` 阶段。
-  - [插件可以用 Java/Go/Python 编写](../../zh/latest/external-plugin.md)
-  - 自定义负载均衡算法:可以在 `balancer` 阶段使用自定义负载均衡算法。
-  - 自定义路由: 支持用户自己实现路由算法。
+    - [自定义插件](plugin-develop.md): 允许挂载常见阶段,例如`init`, `rewrite`,`access`,`balancer`,`header filter`,`body filter` 和 `log` 阶段。

Review comment:
       ```suggestion
       - [自定义插件](plugin-develop.md):允许挂载常见阶段,例如`init`, `rewrite`,`access`,`balancer`,`header filter`,`body filter` 和 `log` 阶段。
   ```

##########
File path: docs/zh/latest/how-to-build.md
##########
@@ -351,13 +351,13 @@ Content-Type: text/html
 {"node":{...},"action":"get"}
 ```
 
-## 步骤6:为 Apache APISIX 构建 OpenResty
+## 步骤 6:为 Apache APISIX 构建 OpenResty

Review comment:
       Oh I see, please ignore the above comments on the url suffixes on this part, my bad.

##########
File path: docs/zh/latest/admin-api.md
##########
@@ -566,12 +566,12 @@ APISIX 的 Upstream 除了基本的负载均衡算法选择外,还支持对上
 `hash_on` 比较复杂,这里专门说明下:
 
 1. 设为 `vars` 时,`key` 为必传参数,目前支持的 Nginx 内置变量有 `uri, server_name, server_addr, request_uri, remote_port, remote_addr, query_string, host, hostname, arg_***`,其中 `arg_***` 是来自 URL 的请求参数,[Nginx 变量列表](http://nginx.org/en/docs/varindex.html)
-2. 设为 `header` 时, `key` 为必传参数,其值为自定义的 header name, 即 "http\_`key`"
-3. 设为 `cookie` 时, `key` 为必传参数,其值为自定义的 cookie name,即 "cookie\_`key`"。请注意 cookie name 是**区分大小写字母**的。例如:"cookie_x_foo" 与 "cookie_X_Foo" 表示不同的 `cookie`。
+2. 设为 `header` 时,`key` 为必传参数,其值为自定义的 header name,即 "http\_`key`"
+3. 设为 `cookie` 时,`key` 为必传参数,其值为自定义的 cookie name,即 "cookie\_`key`"。请注意 cookie name 是**区分大小写字母**的。例如:"cookie_x_foo" 与 "cookie_X_Foo" 表示不同的 `cookie`。
 4. 设为 `consumer` 时,`key` 不需要设置。此时哈希算法采用的 `key` 为认证通过的 `consumer_name`。
 5. 如果指定的 `hash_on` 和 `key` 获取不到值时,就是用默认值:`remote_addr`。
 
-以下特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤6:为-apache-apisix-构建-openresty):
+以下特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤-6:为-apache-apisix-构建-openresty):

Review comment:
       Not sure if this works. I see https://apisix.apache.org/zh/docs/apisix/how-to-build/#%E6%AD%A5%E9%AA%A46%EF%BC%9A%E4%B8%BA-apache-apisix-%E6%9E%84%E5%BB%BA-openresty is listed as `#步骤6:为-apache-apisix-构建-openresty`, maybe we should follow it?
   
   ![image](https://user-images.githubusercontent.com/36651058/158748094-385c1f05-61de-4a9a-89d4-472fb15752ec.png)
   
   
   ```suggestion
   以下特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤6:为-apache-apisix-构建-openresty):
   ```

##########
File path: docs/zh/latest/plugins/batch-requests.md
##########
@@ -133,7 +133,7 @@ $ curl http://127.0.0.1:9080/apisix/admin/routes/br -H 'X-API-KEY: edd1c9f034335
 }'
 ```
 
-之后,你就可以将要访问的请求信息传到网关的批量请求接口( `/apisix/batch-requests` )了,网关会以 [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining) 的方式自动帮你完成请求。
+之后,你就可以将要访问的请求信息传到网关的批量请求接口 ( `/apisix/batch-requests` ) 了,网关会以 [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining) 的方式自动帮你完成请求。

Review comment:
       ```suggestion
   之后,你就可以将要访问的请求信息传到网关的批量请求接口(`/apisix/batch-requests`)了,网关会以 [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining) 的方式自动帮你完成请求。
   ```

##########
File path: docs/zh/latest/plugins/api-breaker.md
##########
@@ -29,15 +29,15 @@ title: api-breaker
 
 由代码逻辑自动按**触发不健康状态**的次数递增运算:
 
-每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码(比如:500),达到 `unhealthy.failures` 次时(比如:3 次),认为上游服务处于不健康状态。
+每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码 (比如:500),达到 `unhealthy.failures` 次时 (比如:3 次),认为上游服务处于不健康状态。

Review comment:
       ```suggestion
   每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码(比如:500),达到 `unhealthy.failures` 次时 (比如:3 次),认为上游服务处于不健康状态。
   ```

##########
File path: docs/zh/latest/benchmark.md
##########
@@ -61,11 +61,11 @@ title: 压力测试
 
 #### Latency
 
-请注意 y 轴延时的单位是**微秒(μs)**,而不是毫秒:
+请注意 y 轴延时的单位是**微秒 (μs)**,而不是毫秒:

Review comment:
       ```suggestion
   请注意 y 轴延时的单位是**微秒 (μs)**,而不是毫秒:
   ```

##########
File path: docs/zh/latest/discovery/kubernetes.md
##########
@@ -96,25 +96,25 @@ discovery:
 # Kubernetes 服务发现插件的使用
 
 Kubernetes 服务发现插件提供与其他服务发现插件相同的查询接口 -> nodes(service_name) \
-service_name 的 pattern 如下:
+service_name 的 pattern 如下:
 > _[namespace]/[name]:[portName]_
 
 如果 kubernetes Endpoint 没有定义 portName, Kubernetes 服务发现插件会依次使用 targetPort, port 代替
 
 # Q&A
 
 > Q: 为什么只支持配置 token 来访问 Kubernetes ApiServer \
-> A: 通常情况下,我们会使用三种方式与 Kubernetes ApiServer 通信 :
+> A: 通常情况下,我们会使用三种方式与 Kubernetes ApiServer 通信 :

Review comment:
       ```suggestion
   > A:通常情况下,我们会使用三种方式与 Kubernetes ApiServer 通信:
   ```

##########
File path: docs/zh/latest/admin-api.md
##########
@@ -580,7 +580,7 @@ APISIX 的 Upstream 除了基本的负载均衡算法选择外,还支持对上
 
 `keepalive_pool` 允许 upstream 对象有自己单独的连接池。
 它下属的字段,比如 `requests`,可以用了配置上游连接保持的参数。
-这个特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤6:为-apache-apisix-构建-openresty)。
+这个特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤-6:为-apache-apisix-构建-openresty)。

Review comment:
       ditto, I think the original url suffix works, but after changing it, it fails.

##########
File path: docs/zh/latest/certificate.md
##########
@@ -33,7 +33,7 @@ SNI(Server Name Indication)是用来改善 SSL 和 TLS 的一项特性,它允
 * `key`: SSL 密钥对的私钥,pem 格式
 * `snis`: SSL 证书所指定的一个或多个域名,注意在设置这个参数之前,你需要确保这个证书对应的私钥是有效的。

Review comment:
       ```suggestion
   * `key`:SSL 密钥对的私钥,pem 格式
   * `snis`:SSL 证书所指定的一个或多个域名,注意在设置这个参数之前,你需要确保这个证书对应的私钥是有效的。
   ```

##########
File path: docs/zh/latest/plugins/authz-keycloak.md
##########
@@ -34,13 +34,13 @@ title: authz-keycloak
 | audience                    | string        | 可选   |             |                             | 客户端应用访问相应的资源服务器时所需提供的身份信息。当 permissions 参数有值时这个参数是必填的。 |
 | permissions                 | array[string] | 可选   |             |                             | 描述客户端应用所需访问的资源和权限范围的字符串。格式必须为:`RESOURCE_ID#SCOPE_ID`              |
 | timeout                     | integer       | 可选   | 3000        | [1000, ...]                 | 与身份认证服务器的 http 连接的超时时间                                                          |
-| access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间(秒)
-| access_token_expires_leeway | integer       | 可选   | 0           | [0, ...]                            | access token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 access token 令牌来解决潜在的网络并发问题)        |
-| refresh_token_expires_in    | integer       | 可选   | 3600        | [1, ...]                            | refresh token 的过期时间(秒)                                                                               |
-| refresh_token_expires_leeway| integer       | 可选   | 0           | [0, ...]                            | refresh token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 refresh token 令牌来解决潜在的网络并发问题)                                                                   |
+| access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间 (秒) |

Review comment:
       ```suggestion
   | access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间(秒) |
   ```

##########
File path: docs/zh/latest/plugins/authz-keycloak.md
##########
@@ -34,13 +34,13 @@ title: authz-keycloak
 | audience                    | string        | 可选   |             |                             | 客户端应用访问相应的资源服务器时所需提供的身份信息。当 permissions 参数有值时这个参数是必填的。 |
 | permissions                 | array[string] | 可选   |             |                             | 描述客户端应用所需访问的资源和权限范围的字符串。格式必须为:`RESOURCE_ID#SCOPE_ID`              |
 | timeout                     | integer       | 可选   | 3000        | [1000, ...]                 | 与身份认证服务器的 http 连接的超时时间                                                          |
-| access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间(秒)
-| access_token_expires_leeway | integer       | 可选   | 0           | [0, ...]                            | access token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 access token 令牌来解决潜在的网络并发问题)        |
-| refresh_token_expires_in    | integer       | 可选   | 3600        | [1, ...]                            | refresh token 的过期时间(秒)                                                                               |
-| refresh_token_expires_leeway| integer       | 可选   | 0           | [0, ...]                            | refresh token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 refresh token 令牌来解决潜在的网络并发问题)                                                                   |
+| access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间 (秒) |
+| access_token_expires_leeway | integer       | 可选   | 0           | [0, ...]                            | access token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 access token 令牌来解决潜在的网络并发问题)|
+| refresh_token_expires_in    | integer       | 可选   | 3600        | [1, ...]                            | refresh token 的过期时间 (秒) |

Review comment:
       ```suggestion
   | refresh_token_expires_in    | integer       | 可选   | 3600        | [1, ...]                            | refresh token 的过期时间(秒) |
   ```

##########
File path: docs/zh/latest/debug-function.md
##########
@@ -72,7 +72,7 @@ $ curl http://127.0.0.1:9080/hello -v
 
 具有 `X-APISIX-Upstream-Status: 502` 的响应头。
 
-示例2: `502` 响应状态码来源于 `APISIX`
+示例 2: `502` 响应状态码来源于 `APISIX`

Review comment:
       ```suggestion
   示例 2:`502` 响应状态码来源于 `APISIX`
   ```

##########
File path: docs/zh/latest/plugins/traffic-split.md
##########
@@ -40,7 +40,7 @@ traffic-split 插件使用户可以逐步引导各个上游之间的流量百分
 | upstream.hash_on               | enum   | 可选   | vars | | `hash_on` 支持的类型有 `vars`(Nginx 内置变量),`header`(自定义 header),`cookie`,`consumer`,`vars_combinations`,默认值为 `vars`。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。|
 | upstream.key                   | string | 可选   |      |    |  该选项只有类型是 `chash` 才有效。根据 `key` 来查找对应的 node `id`,相同的 `key` 在同一个对象中,永远返回相同 id。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。 |
 | upstream.nodes                 | object | 可选   |        |        | 哈希表,内部元素的 key 是上游机器地址 列表,格式为地址 + Port,其中地址部 分可以是 IP 也可以是域名,⽐如 192.168.1.100:80、foo.com:80 等。 value 则是节点的权重,特别的,当权重 值为 0 有特殊含义,通常代表该上游节点 失效,永远不希望被选中。 |
-| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间(时间单位:秒,都默认为 15 秒)。 |
+| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间 (时间单位:秒,都默认为 15 秒)。 |

Review comment:
       ```suggestion
   | upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间)时间单位:秒,都默认为 15 秒)。 |
   ```

##########
File path: docs/zh/latest/plugins/limit-conn.md
##########
@@ -31,7 +31,7 @@ title: limit-conn
 | ------------------ | ------- | -------- | ------ | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | conn               | integer | required |        | conn > 0                                                                                  | 允许的最大并发请求数。超过 `conn` 的限制、但是低于 `conn` + `burst` 的请求,将被延迟处理。                                                                                                                                                                                                                                                                                                                                                    |
 | burst              | integer | required |        | burst >= 0                                                                                | 允许被延迟处理的并发请求数。                                                                                                                                                                                                                                                                                                                                                                                                                  |
-| default_conn_delay | number  | required |        | default_conn_delay > 0                                                                    | 默认的典型连接(或请求)的处理延迟时间。                                                                                                                                                                                                                                                                                                                                                                                                        |
+| default_conn_delay | number  | required |        | default_conn_delay > 0                                                                    | 默认的典型连接 (或请求) 的处理延迟时间。                                                                                                                                                                                                                                                                                                                                                                                                        |

Review comment:
       ```suggestion
   | default_conn_delay | number  | required |        | default_conn_delay > 0                                                                    | 默认的典型连接(或请求)的处理延迟时间。                                                                                                                                                                                                                                                                                                                                                                                                        |
   ```

##########
File path: docs/zh/latest/plugins/consumer-restriction.md
##########
@@ -29,12 +29,12 @@ title: consumer-restriction
 
 | 参数名     | 类型          | 可选项   | 默认值            | 有效值                           | 描述                                                       |
 | --------- | ------------- | ------ | -----------------| --------------------------------| ----------------------------------------------------------|
-| type      |     string    | 可选    | consumer_name    | ["consumer_name", "service_id", "route_id"] | 根据不同的对象做相应的限制,支持 `consumer_name`、`service_id`、`route_id`。     |
+| type      |     string    | 可选    | consumer_name    | ["consumer_name", "service_id", "route_id"] | 根据不同的对象做相应的限制,支持 `consumer_name`、`service_id`、`route_id`。     |
 | whitelist | array[string] | 必选    |                  |                                 | 与`blacklist`二选一,只能单独启用白名单或黑名单,两个不能一起使用。 |
 | blacklist | array[string] | 必选    |                  |                                 | 与`whitelist`二选一,只能单独启用白名单或黑名单,两个不能一起使用。 |
 | rejected_code | integer   | 可选    | 403              | [200,...]                       | 当请求被拒绝时,返回的 HTTP 状态码。|
 | rejected_msg | String   | 可选    |               |                        | 当请求被拒绝时,返回的消息内容。|
-| allowed_by_methods | array[object] | 可选     |            |                        | 为用户设置允许的HTTP methods列表 , HTTP methods 可以为 `["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "CONNECT", "TRACE"]`                                                                        |
+| allowed_by_methods | array[object] | 可选     |            |                        | 为用户设置允许的 HTTP methods 列表 , HTTP methods 可以为 `["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "CONNECT", "TRACE"]`                                                                        |

Review comment:
       ```suggestion
   | allowed_by_methods | array[object] | 可选     |            |                        | 为用户设置允许的 HTTP methods 列表, HTTP methods 可以为 `["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "CONNECT", "TRACE"]`                                                                        |
   ```

##########
File path: docs/zh/latest/plugins/traffic-split.md
##########
@@ -40,7 +40,7 @@ traffic-split 插件使用户可以逐步引导各个上游之间的流量百分
 | upstream.hash_on               | enum   | 可选   | vars | | `hash_on` 支持的类型有 `vars`(Nginx 内置变量),`header`(自定义 header),`cookie`,`consumer`,`vars_combinations`,默认值为 `vars`。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。|
 | upstream.key                   | string | 可选   |      |    |  该选项只有类型是 `chash` 才有效。根据 `key` 来查找对应的 node `id`,相同的 `key` 在同一个对象中,永远返回相同 id。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。 |
 | upstream.nodes                 | object | 可选   |        |        | 哈希表,内部元素的 key 是上游机器地址 列表,格式为地址 + Port,其中地址部 分可以是 IP 也可以是域名,⽐如 192.168.1.100:80、foo.com:80 等。 value 则是节点的权重,特别的,当权重 值为 0 有特殊含义,通常代表该上游节点 失效,永远不希望被选中。 |
-| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间(时间单位:秒,都默认为 15 秒)。 |
+| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间 (时间单位:秒,都默认为 15 秒)。 |
 | upstream.pass_host             | enum   | 可选   | "pass"   | ["pass", "node", "rewrite"]  | `pass`: 将客户端的 host 透传给上游; `node`: 使用 `upstream`  node 中配置的 host; `rewrite`: 使用配置项 `upstream_host` 的值 |

Review comment:
       ```suggestion
   | upstream.pass_host             | enum   | 可选   | "pass"   | ["pass", "node", "rewrite"]  | `pass`:将客户端的 host 透传给上游; `node`:使用 `upstream`  node 中配置的 host; `rewrite`:使用配置项 `upstream_host` 的值 |
   ```

##########
File path: docs/zh/latest/admin-api.md
##########
@@ -80,7 +80,7 @@ Admin API 是为 Apache APISIX 服务的一组 API,我们可以将参数传递
 | labels           | 可选                               | 匹配规则 | 标识附加属性的键值对                                                                                                                                                                                                                                                                                                                                       | {"version":"v2","build":"16","env":"production"}     |
 | timeout          | 可选                               | 辅助     | 为 route 设置 upstream 的连接、发送消息、接收消息的超时时间。这个配置将会覆盖在 upstream 中 配置的 [timeout](#upstream) 选项                                                                                                                                                                        | {"connect": 3, "send": 3, "read": 3}              |
 | enable_websocket | 可选                               | 辅助     | 是否启用 `websocket`(boolean), 缺省 `false`.                                                                                                                                                                                                                                                                                                               |                                                      |

Review comment:
       ```suggestion
   | enable_websocket | 可选                               | 辅助     | 是否启用 `websocket`(boolean), 缺省 `false`。                                                                                                                                                                                                                                                                                                               |                                                      |
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org