From 15e738c84e4150d6903faa6bbf0d9ad102a121a0 Mon Sep 17 00:00:00 2001 From: sshniro Date: Wed, 17 Jun 2020 11:51:26 +0200 Subject: [PATCH 1/6] Refactoring docs to support docsify --- FAQ_CN.md | 2 +- README.md | 2 +- README_CN.md | 62 +++++++------- doc/README_CN.md | 68 --------------- doc/_navbar.md | 3 + doc/_sidebar.md | 85 +++++++++++++++++++ doc/architecture-design.md | 6 +- doc/benchmark.md | 12 +-- doc/discovery.md | 2 +- doc/getting-started.md | 2 +- doc/grpc-proxy.md | 2 +- doc/https.md | 2 +- doc/index.html | 32 +++++++ doc/plugin-develop.md | 2 +- doc/plugins.md | 2 +- doc/plugins/basic-auth.md | 2 +- doc/plugins/batch-requests.md | 2 +- doc/plugins/consumer-restriction.md | 2 +- doc/plugins/cors.md | 2 +- doc/plugins/fault-injection.md | 2 +- doc/plugins/grpc-transcode.md | 2 +- doc/plugins/ip-restriction.md | 2 +- doc/plugins/jwt-auth.md | 2 +- doc/plugins/key-auth.md | 2 +- doc/plugins/limit-conn.md | 2 +- doc/plugins/limit-count.md | 2 +- doc/plugins/limit-req.md | 2 +- doc/plugins/mqtt-proxy.md | 2 +- doc/plugins/prometheus.md | 2 +- doc/plugins/proxy-cache.md | 2 +- doc/plugins/proxy-mirror.md | 2 +- doc/plugins/proxy-rewrite.md | 2 +- doc/plugins/redirect.md | 2 +- doc/plugins/response-rewrite.md | 2 +- doc/plugins/serverless.md | 2 +- doc/plugins/skywalking.md | 2 +- doc/plugins/wolf-rbac.md | 2 +- doc/plugins/zipkin.md | 2 +- doc/stand-alone.md | 2 +- doc/stream-proxy.md | 2 +- doc/zh-cn/README.md | 68 +++++++++++++++ doc/zh-cn/_sidebar.md | 85 +++++++++++++++++++ doc/{admin-api-cn.md => zh-cn/admin-api.md} | 18 ++-- .../architecture-design.md} | 22 ++--- .../batch-processor.md} | 2 +- doc/{benchmark-cn.md => zh-cn/benchmark.md} | 4 +- doc/{discovery-cn.md => zh-cn/discovery.md} | 6 +- .../getting-started.md} | 8 +- doc/{grpc-proxy-cn.md => zh-cn/grpc-proxy.md} | 4 +- .../how-to-build.md} | 2 +- doc/{https-cn.md => zh-cn/https.md} | 2 +- .../install-dependencies.md} | 2 +- .../plugin-develop.md} | 2 +- doc/{plugins-cn.md => zh-cn/plugins.md} | 2 +- .../plugins/basic-auth.md} | 6 +- .../plugins/batch-requests.md} | 2 +- .../plugins/consumer-restriction.md} | 2 +- .../cors-cn.md => zh-cn/plugins/cors.md} | 2 +- .../echo-cn.md => zh-cn/plugins/echo.md} | 0 .../plugins/fault-injection.md} | 2 +- .../plugins/grpc-transcode.md} | 2 +- .../plugins/http-logger.md} | 0 .../plugins/ip-restriction.md} | 2 +- .../plugins/jwt-auth.md} | 6 +- .../plugins/kafka-logger.md} | 2 +- .../plugins/key-auth.md} | 6 +- .../plugins/limit-conn.md} | 6 +- .../plugins/limit-count.md} | 6 +- .../plugins/limit-req.md} | 6 +- .../plugins/mqtt-proxy.md} | 2 +- .../plugins/prometheus.md} | 16 ++-- .../plugins/proxy-cache.md} | 2 +- .../plugins/proxy-mirror.md} | 2 +- .../plugins/proxy-rewrite.md} | 2 +- .../plugins/redirect.md} | 2 +- .../plugins/response-rewrite.md} | 4 +- .../plugins/serverless.md} | 2 +- .../plugins/skywalking.md} | 12 +-- .../syslog-cn.md => zh-cn/plugins/syslog.md} | 0 .../plugins/tcp-logger.md} | 2 +- .../plugins/udp-logger.md} | 2 +- .../plugins/wolf-rbac.md} | 6 +- .../zipkin-cn.md => zh-cn/plugins/zipkin.md} | 10 +-- doc/{profile-cn.md => zh-cn/profile.md} | 0 .../stand-alone.md} | 2 +- .../stream-proxy.md} | 4 +- 86 files changed, 443 insertions(+), 238 deletions(-) delete mode 100644 doc/README_CN.md create mode 100644 doc/_navbar.md create mode 100644 doc/_sidebar.md create mode 100644 doc/index.html create mode 100644 doc/zh-cn/README.md create mode 100644 doc/zh-cn/_sidebar.md rename doc/{admin-api-cn.md => zh-cn/admin-api.md} (97%) rename doc/{architecture-design-cn.md => zh-cn/architecture-design.md} (96%) rename doc/{batch-processor-cn.md => zh-cn/batch-processor.md} (98%) rename doc/{benchmark-cn.md => zh-cn/benchmark.md} (96%) rename doc/{discovery-cn.md => zh-cn/discovery.md} (99%) rename doc/{getting-started-cn.md => zh-cn/getting-started.md} (97%) rename doc/{grpc-proxy-cn.md => zh-cn/grpc-proxy.md} (96%) rename doc/{how-to-build-cn.md => zh-cn/how-to-build.md} (99%) rename doc/{https-cn.md => zh-cn/https.md} (99%) rename doc/{install-dependencies-cn.md => zh-cn/install-dependencies.md} (98%) rename doc/{plugin-develop-cn.md => zh-cn/plugin-develop.md} (99%) rename doc/{plugins-cn.md => zh-cn/plugins.md} (97%) rename doc/{plugins/basic-auth-cn.md => zh-cn/plugins/basic-auth.md} (96%) rename doc/{plugins/batch-requests-cn.md => zh-cn/plugins/batch-requests.md} (99%) rename doc/{plugins/consumer-restriction-cn.md => zh-cn/plugins/consumer-restriction.md} (98%) rename doc/{plugins/cors-cn.md => zh-cn/plugins/cors.md} (99%) rename doc/{plugins/echo-cn.md => zh-cn/plugins/echo.md} (100%) rename doc/{plugins/fault-injection-cn.md => zh-cn/plugins/fault-injection.md} (98%) rename doc/{plugins/grpc-transcode-cn.md => zh-cn/plugins/grpc-transcode.md} (99%) rename doc/{plugins/http-logger-cn.md => zh-cn/plugins/http-logger.md} (100%) rename doc/{plugins/ip-restriction-cn.md => zh-cn/plugins/ip-restriction.md} (98%) rename doc/{plugins/jwt-auth-cn.md => zh-cn/plugins/jwt-auth.md} (97%) rename doc/{plugins/kafka-logger-cn.md => zh-cn/plugins/kafka-logger.md} (98%) rename doc/{plugins/key-auth-cn.md => zh-cn/plugins/key-auth.md} (96%) rename doc/{plugins/limit-conn-cn.md => zh-cn/plugins/limit-conn.md} (96%) rename doc/{plugins/limit-count-cn.md => zh-cn/plugins/limit-count.md} (97%) rename doc/{plugins/limit-req-cn.md => zh-cn/plugins/limit-req.md} (96%) rename doc/{plugins/mqtt-proxy-cn.md => zh-cn/plugins/mqtt-proxy.md} (98%) rename doc/{plugins/prometheus-cn.md => zh-cn/plugins/prometheus.md} (93%) rename doc/{plugins/proxy-cache-cn.md => zh-cn/plugins/proxy-cache.md} (99%) rename doc/{plugins/proxy-mirror-cn.md => zh-cn/plugins/proxy-mirror.md} (98%) rename doc/{plugins/proxy-rewrite-cn.md => zh-cn/plugins/proxy-rewrite.md} (98%) rename doc/{plugins/redirect-cn.md => zh-cn/plugins/redirect.md} (98%) rename doc/{plugins/response-rewrite-cn.md => zh-cn/plugins/response-rewrite.md} (96%) rename doc/{plugins/serverless-cn.md => zh-cn/plugins/serverless.md} (98%) rename doc/{plugins/skywalking-cn.md => zh-cn/plugins/skywalking.md} (95%) rename doc/{plugins/syslog-cn.md => zh-cn/plugins/syslog.md} (100%) rename doc/{plugins/tcp-logger-cn.md => zh-cn/plugins/tcp-logger.md} (98%) rename doc/{plugins/udp-logger-cn.md => zh-cn/plugins/udp-logger.md} (98%) rename doc/{plugins/wolf-rbac-cn.md => zh-cn/plugins/wolf-rbac.md} (98%) rename doc/{plugins/zipkin-cn.md => zh-cn/plugins/zipkin.md} (95%) rename doc/{profile-cn.md => zh-cn/profile.md} (100%) rename doc/{stand-alone-cn.md => zh-cn/stand-alone.md} (99%) rename doc/{stream-proxy-cn.md => zh-cn/stream-proxy.md} (96%) diff --git a/FAQ_CN.md b/FAQ_CN.md index 720b798df630..334fc693c739 100644 --- a/FAQ_CN.md +++ b/FAQ_CN.md @@ -45,7 +45,7 @@ APISIX 是当前性能最好的 API 网关,单核 QPS 达到 2.3 万,平均 当然可以,APISIX 提供了灵活的自定义插件,方便开发者和企业编写自己的逻辑。 -[如何开发插件](doc/plugin-develop-cn.md) +[如何开发插件](doc/zh-cn/plugin-develop.md) ## 我们为什么选择 etcd 作为配置中心? diff --git a/README.md b/README.md index 08e1d57caa25..da9ccf16de28 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against - Support [various operators as judgment conditions for routing](https://github.com/iresty/lua-resty-radixtree#operator-list), for example `{"arg_age", ">", 24}` - Support [custom route matching function](https://github.com/iresty/lua-resty-radixtree/blob/master/t/filter-fun.t#L10) - IPv6: Use IPv6 to match route. - - Support [TTL](doc/admin-api-cn.md#route) + - Support [TTL](doc/zh-cn/admin-api.md#route) - [Support priority](doc/router-radixtree.md#3-match-priority) - [Support Batch Http Requests](doc/plugins/batch-requests.md) diff --git a/README_CN.md b/README_CN.md index b51476a8b3fa..1fbd99814699 100644 --- a/README_CN.md +++ b/README_CN.md @@ -51,26 +51,26 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 - 支持 ARM64: 不用担心底层技术的锁定。 - **多协议** - - [TCP/UDP 代理](doc/stream-proxy-cn.md): 动态 TCP/UDP 代理。 - - [动态 MQTT 代理](doc/plugins/mqtt-proxy-cn.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 代理](doc/grpc-proxy-cn.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。 + - [TCP/UDP 代理](doc/zh-cn/stream-proxy.md): 动态 TCP/UDP 代理。 + - [动态 MQTT 代理](doc/zh-cn/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 代理](doc/zh-cn/grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。 - [gRPC 协议转换](doc/plugins/grpc-transcoding-cn.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。 - Websocket 代理 - Proxy Protocol - Dubbo 代理:基于 Tengine,可以实现 Dubbo 请求的代理。 - HTTP(S) 反向代理 - - [SSL](doc/https-cn.md):动态加载 SSL 证书。 + - [SSL](doc/zh-cn/https.md):动态加载 SSL 证书。 - **全动态能力** - - [热更新和热插件](doc/plugins-cn.md): 无需重启服务,就可以持续更新配置和插件。 - - [代理请求重写](doc/plugins/proxy-rewrite-cn.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。 - - [输出内容重写](doc/plugins/response-rewrite-cn.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。 - - [Serverless](doc/plugins/serverless-cn.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。 + - [热更新和热插件](doc/zh-cn/plugins.md): 无需重启服务,就可以持续更新配置和插件。 + - [代理请求重写](doc/zh-cn/plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。 + - [输出内容重写](doc/zh-cn/plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。 + - [Serverless](doc/zh-cn/plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。 - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。 - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。 - [健康检查](doc/health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。 - 熔断器: 智能跟踪不健康上游服务。 - - [动态服务发现](doc/discovery-cn.md):支持基于注册中心的服务发现功能,降低反向代理维护成本。 + - [动态服务发现](doc/zh-cn/discovery.md):支持基于注册中心的服务发现功能,降低反向代理维护成本。 - **精细化路由** - [支持全路径匹配和前缀匹配](doc/router-radixtree.md#how-to-use-libradixtree-in-apisix) @@ -78,37 +78,37 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 - 支持[各类操作符做为路由的判断条件](https://github.com/iresty/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}` - 支持[自定义路由匹配函数](https://github.com/iresty/lua-resty-radixtree/blob/master/t/filter-fun.t#L10) - IPv6:支持使用 IPv6 格式匹配路由 - - 支持路由的[自动过期(TTL)](doc/admin-api-cn.md#route) + - 支持路由的[自动过期(TTL)](doc/zh-cn/admin-api.md#route) - [支持路由的优先级](doc/router-radixtree.md#3-match-priority) - - [支持批量 Http 请求](doc/plugins/batch-requests-cn.md) + - [支持批量 Http 请求](doc/zh-cn/plugins/batch-requests.md) - **安全防护** - - 多种身份认证方式: [key-auth](doc/plugins/key-auth-cn.md), [JWT](doc/plugins/jwt-auth-cn.md), [basic-auth](doc/plugins/basic-auth-cn.md), [wolf-rbac](doc/plugins/wolf-rbac-cn.md)。 - - [IP 黑白名单](doc/plugins/ip-restriction-cn.md) + - 多种身份认证方式: [key-auth](doc/zh-cn/plugins/key-auth.md), [JWT](doc/zh-cn/plugins/jwt-auth.md), [basic-auth](doc/zh-cn/plugins/basic-auth.md), [wolf-rbac](doc/zh-cn/plugins/wolf-rbac.md)。 + - [IP 黑白名单](doc/zh-cn/plugins/ip-restriction.md) - [IdP 支持](doc/plugins/oauth.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。 - - [限制速率](doc/plugins/limit-req-cn.md) - - [限制请求数](doc/plugins/limit-count-cn.md) - - [限制并发](doc/plugins/limit-conn-cn.md) + - [限制速率](doc/zh-cn/plugins/limit-req.md) + - [限制请求数](doc/zh-cn/plugins/limit-count.md) + - [限制并发](doc/zh-cn/plugins/limit-conn.md) - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。 - - [CORS](doc/plugins/cors-cn.md) + - [CORS](doc/zh-cn/plugins/cors.md) - **运维友好** - - OpenTracing 可观测性: 支持 [Apache Skywalking](doc/plugins/skywalking-cn.md) 和 [Zipkin](doc/plugins/zipkin-cn.md)。 - - 监控和指标: [Prometheus](doc/plugins/prometheus-cn.md) + - OpenTracing 可观测性: 支持 [Apache Skywalking](doc/zh-cn/plugins/skywalking.md) 和 [Zipkin](doc/zh-cn/plugins/zipkin.md)。 + - 监控和指标: [Prometheus](doc/zh-cn/plugins/prometheus.md) - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/clustering.md)。 - 高可用:支持配置同一个集群内的多个 etcd 地址。 - 控制台: 内置控制台来操作 APISIX 集群。 - 版本控制:支持操作的多次回滚。 - CLI: 使用命令行来启动、关闭和重启 APISIX。 - - [单机模式](doc/stand-alone-cn.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。 - - [全局规则](doc/architecture-design-cn.md#Global-Rule):允许对所有请求执行插件,比如黑白名单、限流限速等。 + - [单机模式](doc/zh-cn/stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。 + - [全局规则](doc/zh-cn/architecture-design.md#Global-Rule):允许对所有请求执行插件,比如黑白名单、限流限速等。 - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。 - - [故障注入](doc/plugins/fault-injection-cn.md) - - [REST Admin API](doc/admin-api-cn.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` 字段,来保证安全。** + - [故障注入](doc/zh-cn/plugins/fault-injection.md) + - [REST Admin API](doc/zh-cn/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](doc/plugins/http-logger.md), [TCP Logger](doc/plugins/tcp-logger.md), [Kafka Logger](doc/plugins/kafka-logger.md), [UDP Logger](doc/plugins/udp-logger.md)) - **高度可扩展** - - [自定义插件](doc/plugin-develop-cn.md): 允许挂载常见阶段,例如`init`, `rewrite`,`access`,`balancer`,`header filer`,`body filter` 和 `log` 阶段。 + - [自定义插件](doc/zh-cn/plugin-develop.md): 允许挂载常见阶段,例如`init`, `rewrite`,`access`,`balancer`,`header filer`,`body filter` 和 `log` 阶段。 - 自定义负载均衡算法:可以在 `balancer` 阶段使用自定义负载均衡算法。 - 自定义路由: 支持用户自己实现路由算法。 @@ -119,11 +119,11 @@ APISIX 在以下操作系统中可顺利安装并做过运行测试,需要注 CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, **ARM64** Ubuntu 18.04 安装 APISIX 的步骤: -1. 安装运行时依赖:OpenResty 和 etcd,参考[依赖安装文档](doc/install-dependencies-cn.md) +1. 安装运行时依赖:OpenResty 和 etcd,参考[依赖安装文档](doc/zh-cn/install-dependencies.md) 2. 有以下几种方式来安装 Apache APISIX: - - 通过[源码包安装](doc/how-to-build-cn.md#通过源码包安装); - - 如果你在使用 CentOS 7,可以使用 [RPM 包安装](doc/how-to-build-cn.md#通过-rpm-包安装centos-7); - - 其它 Linux 操作系统,可以使用 [Luarocks 安装方式](doc/how-to-build-cn.md#通过-luarocks-安装-不支持-macos); + - 通过[源码包安装](doc/zh-cn/how-to-build.md#通过源码包安装); + - 如果你在使用 CentOS 7,可以使用 [RPM 包安装](doc/zh-cn/how-to-build.md#通过-rpm-包安装centos-7); + - 其它 Linux 操作系统,可以使用 [Luarocks 安装方式](doc/zh-cn/how-to-build.md#通过-luarocks-安装-不支持-macos); - 你也可以使用 [Docker 镜像](https://github.com/apache/incubator-apisix-docker) 来安装。 ## 快速上手 @@ -136,9 +136,9 @@ sudo apisix start 2. 入门指南 -入门指南是学习 APISIX 基础知识的好方法。按照 [入门指南](doc/getting-started-cn.md)的步骤即可。 +入门指南是学习 APISIX 基础知识的好方法。按照 [入门指南](doc/zh-cn/getting-started.md)的步骤即可。 -更进一步,你可以跟着文档来尝试更多的[插件](doc/README_CN.md#插件)。 +更进一步,你可以跟着文档来尝试更多的[插件](doc/zh-cn/README.md#插件)。 ## 控制台 @@ -176,7 +176,7 @@ Dashboard 默认只允许 127.0.0.1 访问。你可以自行修改 `conf/config. ## 文档 -[Apache APISIX 文档索引](doc/README_CN.md) +[Apache APISIX 文档索引](doc/zh-cn/README.md) ## Apache APISIX 和 Kong 的比较 diff --git a/doc/README_CN.md b/doc/README_CN.md deleted file mode 100644 index 866e0725b788..000000000000 --- a/doc/README_CN.md +++ /dev/null @@ -1,68 +0,0 @@ - -[English](README.md) - -Reference document -================== - -* [APISIX 说明](../README_CN.md) -* [架构设计](architecture-design-cn.md) -* [压力测试](benchmark-cn.md) -* [如何构建 Apache APISIX](how-to-build-cn.md) -* [健康检查](health-check.md): 支持对上游节点的主动和被动健康检查,在负载均衡时自动过滤掉不健康的节点。 -* Router(路由) - * [radixtree](router-radixtree.md) - * [r3](router-r3.md) -* [独立运行模型](stand-alone-cn.md): 支持从本地 yaml 格式的配置文件启动,更适合 Kubernetes(k8s) 体系。 -* [TCP/UDP 动态代理](stream-proxy-cn.md) -* [管理 API](admin-api-cn.md) -* [变更日志](../CHANGELOG_CN.md) -* [代码风格](../CODE_STYLE.md) -* [常见问答](../FAQ_CN.md) - -插件 -=== - -* [插件热加载](plugins-cn.md):无需重启服务,完成插件热加载或卸载。 -* [HTTPS](https-cn.md):根据 TLS 扩展字段 SNI(Server Name Indication) 动态加载证书。 -* [动态负载均衡](architecture-design-cn.md#upstream):跨多个上游服务的动态负载均衡,目前已支持 round-robin 和一致性哈希算法。 -* [key-auth](plugins/key-auth-cn.md):基于 Key Authentication 的用户认证。 -* [JWT-auth](plugins/jwt-auth-cn.md):基于 [JWT](https://jwt.io/) (JSON Web Tokens) Authentication 的用户认证。 -* [basic-auth](plugins/basic-auth-cn.md):基于 basic auth 的用户认证。 -* [wolf-rbac](plugins/wolf-rbac-cn.md) 基于 *RBAC* 的用户认证及授权。 -* [limit-count](plugins/limit-count-cn.md):基于“固定窗口”的限速实现。 -* [limit-req](plugins/limit-req-cn.md):基于漏桶原理的请求限速实现。 -* [limit-conn](plugins/limit-conn-cn.md):限制并发请求(或并发连接)。 -* [proxy-rewrite](plugins/proxy-rewrite-cn.md): 支持自定义修改 proxy 到上游的信息。 -* [prometheus](plugins/prometheus-cn.md):以 Prometheus 格式导出 APISIX 自身的状态信息,方便被外部 Prometheus 服务抓取。 -* [OpenTracing](plugins/zipkin-cn.md):支持 Zikpin 和 Apache SkyWalking。 -* [grpc-transcode](plugins/grpc-transcode-cn.md):REST <--> gRPC 转码。 -* [serverless](plugins/serverless-cn.md):允许在 APISIX 中的不同阶段动态运行 Lua 代码。 -* [ip-restriction](plugins/ip-restriction-cn.md): IP 黑白名单。 -* [openid-connect](plugins/oauth.md) -* [redirect](plugins/redirect-cn.md): URI 重定向。 -* [response-rewrite](plugins/response-rewrite-cn.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。 -* [fault-injection](plugins/fault-injection-cn.md):故障注入,可以返回指定的响应体、响应码和响应时间,从而提供了不同的失败场景下处理的能力,例如服务失败、服务过载、服务高延时等。 -* [proxy-cache](plugins/proxy-cache-cn.md):代理缓存插件提供缓存后端响应数据的能力。 -* [proxy-mirror](plugins/proxy-mirror-cn.md):代理镜像插件提供镜像客户端请求的能力。 -* [udp-logger](plugins/udp-logger.md): 将请求记录到UDP服务器 -* [tcp-logger](plugins/tcp-logger.md): 将请求记录到TCP服务器 -* [kafka-logger](plugins/kafka-logger-cn.md): 将请求记录到外部Kafka服务器。 -* [cors](plugins/cors-cn.md): 为你的API启用CORS. -* [batch-requests](plugins/batch-requests-cn.md): 以 **http pipeline** 的方式在网关一次性发起多个 `http` 请求。 diff --git a/doc/_navbar.md b/doc/_navbar.md new file mode 100644 index 000000000000..f92eba2c5bf2 --- /dev/null +++ b/doc/_navbar.md @@ -0,0 +1,3 @@ +- Translations + - [:uk: English](/) + - [:cn: 中文](/zh-cn/) diff --git a/doc/_sidebar.md b/doc/_sidebar.md new file mode 100644 index 000000000000..f78dcdc9c1a0 --- /dev/null +++ b/doc/_sidebar.md @@ -0,0 +1,85 @@ +- Getting started + + - [Introduction](README.md) + - [Quick start](getting-started.md) + +- General + + - [Architecture](architecture-design.md) + + - [Benchmark](benchmark.md) + + - Installation + + - [How to build](how-to-build.md) + - [Install Dependencies](install-dependencies.md) + + - [HTTPS](https.md) + + - [Router](router-radixtree.md) + + - Plugins + + - [Develop Plugins](plugin-develop.md) + - [Hot Reload](plugins.md) + + - Proxy Modes + + - [GRPC Proxy](grpc-proxy.md) + - [Stream Proxy](stream-proxy.md) + +- Plugins + + - Authentication + + - [Key Auth](plugins/key-auth.md) + - [Basic Auth](plugins/basic-auth.md) + - [JWT Auth](plugins/jwt-auth.md) + - [Opend ID Connect](plugins/oauth.md) + + - Loggers + + - [HTTP Logger](plugins/http-logger.md) + - [Kafka Logger](plugins/kafka-logger.md) + - [Syslog](plugins/syslog.md) + - [TCP Logger](plugins/tcp-logger.md) + - [UDP Logger](plugins/udp-logger.md) + + - Monitoring + + - [Prometheus](plugins/prometheus.md) + - [SKywalking](plugins/skywalking.md) + - [Zipkin](plugins/zipkin.md) + + - General + + - [Redirect](plugins/redirect.md) + - [Serverless](plugins/serverless.md) + - [Batch Request](plugins/batch-requests.md) + - [Fault Injection](plugins/fault-injection.md) + - [MQTT Proxy](plugins/mqtt-proxy.md) + - [Proxy Cache](plugins/proxy-cache.md) + - [Proxy Mirror](plugins/proxy-mirror.md) + - [Echo](plugins/echo.md) + + - Transformations + + - [Response Rewrite](plugins/response-rewrite.md) + - [Proxy Rewrite](plugins/proxy-rewrite.md) + - [GRPC Transcoding](plugins/grpc-transcode.md) + + - Security + + - [Consumer Restriction](plugins/consumer-restriction.md) + - [Limit Connection](plugins/limit-conn.md) + - [Limit Count](plugins/limit-count.md) + - [Limit Request](plugins/limit-req.md) + - [CORS](plugins/cors.md) + - [IP Restriction](plugins/ip-restriction.md) + - [Keycloak Authorization](plugins/authz-keycloak.md) + - [RBAC Wolf](plugins/wolf-rbac.md) + + +- Admin API + + - [Admin API](admin-api.md) diff --git a/doc/architecture-design.md b/doc/architecture-design.md index b104440957dc..bda8528b56fd 100644 --- a/doc/architecture-design.md +++ b/doc/architecture-design.md @@ -17,7 +17,7 @@ # --> -[Chinese](architecture-design-cn.md) +[Chinese](zh-cn/architecture-design.md) ## Table of Contents @@ -106,7 +106,7 @@ Server: APISIX web server When we receive a successful response, it indicates that the route was successfully created. -For specific options of Route, please refer to [Admin API](admin-api-cn.md#route). +For specific options of Route, please refer to [Admin API](zh-cn/admin-api.md#route). [Back to top](#Table-of-contents) @@ -537,7 +537,7 @@ HTTP/1.1 503 Service Temporarily Unavailable ``` -Use the [consumer-restriction](./plugins/consumer-restriction-cn.md) plug-in to restrict the access of Jack to this API. +Use the [consumer-restriction](zh-cn/plugins/consumer-restriction.md) plug-in to restrict the access of Jack to this API. # Add Jack to the blacklist $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' diff --git a/doc/benchmark.md b/doc/benchmark.md index eaf4e4cc6cda..9c3c016d0fcf 100644 --- a/doc/benchmark.md +++ b/doc/benchmark.md @@ -17,7 +17,7 @@ # --> -[Chinese](benchmark-cn.md) +[Chinese](zh-cn/benchmark.md) ### Benchmark Environments @@ -35,13 +35,13 @@ and the response size was 1KB. The x-axis means the size of CPU core, and the y-axis is QPS. - + #### Latency Note the y-axis latency in **microsecond(μs)** not millisecond. - + #### Flame Graph @@ -80,18 +80,18 @@ and the response size was 1KB. The x-axis means the size of CPU core, and the y-axis is QPS. - + #### Latency Note the y-axis latency in **microsecond(μs)** not millisecond. - + #### Flame Graph The result of Flame Graph: -![flamegraph-2](../doc/images/flamegraph-2.jpg) +![flamegraph-2](./images/flamegraph-2.jpg) And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port. diff --git a/doc/discovery.md b/doc/discovery.md index f84f29473c4b..96d36e8e3663 100644 --- a/doc/discovery.md +++ b/doc/discovery.md @@ -16,7 +16,7 @@ # limitations under the License. # --> -[Chinese](discovery-cn.md) +[Chinese](zh-cn/discovery.md) # Integration service discovery registry diff --git a/doc/getting-started.md b/doc/getting-started.md index a576329f155a..ae432d464342 100644 --- a/doc/getting-started.md +++ b/doc/getting-started.md @@ -17,7 +17,7 @@ # --> -[Chinese](getting-started-cn.md) +[Chinese](zh-cn/getting-started.md) # Quick Start Guide diff --git a/doc/grpc-proxy.md b/doc/grpc-proxy.md index 22e3297340f0..50404aef49d8 100644 --- a/doc/grpc-proxy.md +++ b/doc/grpc-proxy.md @@ -17,7 +17,7 @@ # --> -[中文](grpc-proxy-cn.md) +[中文](zh-cn/grpc-proxy.md) # grpc-proxy diff --git a/doc/https.md b/doc/https.md index 5e7aa0edba62..c2091a72db47 100644 --- a/doc/https.md +++ b/doc/https.md @@ -17,7 +17,7 @@ # --> -[Chinese](https-cn.md) +[Chinese](zh-cn/https.md) ### HTTPS diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 000000000000..e5769d65a719 --- /dev/null +++ b/doc/index.html @@ -0,0 +1,32 @@ + + + + + Document + + + + + + + +
+ + + + + diff --git a/doc/plugin-develop.md b/doc/plugin-develop.md index a2c8b8b60f4b..a85c208eb4ca 100644 --- a/doc/plugin-develop.md +++ b/doc/plugin-develop.md @@ -16,7 +16,7 @@ # limitations under the License. # --> -[中文](plugin-develop-cn.md) +[中文](zh-cn/plugin-develop.md) # table of contents diff --git a/doc/plugins.md b/doc/plugins.md index 081d2d7385fc..bf39cf15f0a4 100644 --- a/doc/plugins.md +++ b/doc/plugins.md @@ -17,7 +17,7 @@ # --> -[Chinese](plugins-cn.md) +[Chinese](zh-cn/plugins.md) ## Hot reload diff --git a/doc/plugins/basic-auth.md b/doc/plugins/basic-auth.md index c564358727a7..dda4cba69352 100644 --- a/doc/plugins/basic-auth.md +++ b/doc/plugins/basic-auth.md @@ -17,7 +17,7 @@ # --> -# [Chinese](basic-auth-cn.md) +# [Chinese](../zh-cn/plugins/basic-auth.md) # Summary diff --git a/doc/plugins/batch-requests.md b/doc/plugins/batch-requests.md index b40023b4a045..b3ea993e4cad 100644 --- a/doc/plugins/batch-requests.md +++ b/doc/plugins/batch-requests.md @@ -17,7 +17,7 @@ # --> -# [Chinese](batch-requests-cn.md) +# [Chinese](../zh-cn/plugins/batch-requests.md) # Summary diff --git a/doc/plugins/consumer-restriction.md b/doc/plugins/consumer-restriction.md index 2054dbacc60a..60dafa8e8ac3 100644 --- a/doc/plugins/consumer-restriction.md +++ b/doc/plugins/consumer-restriction.md @@ -17,7 +17,7 @@ # --> -[Chinese](consumer-restriction-cn.md) +[Chinese](../zh-cn/plugins/consumer-restriction.md) # Summary - [**Name**](#name) diff --git a/doc/plugins/cors.md b/doc/plugins/cors.md index 6e6114ee215c..2cf0f55c897f 100644 --- a/doc/plugins/cors.md +++ b/doc/plugins/cors.md @@ -17,7 +17,7 @@ # --> -# [Chinese](cors-cn.md) +# [Chinese](../zh-cn/plugins/cors.md) # Summary diff --git a/doc/plugins/fault-injection.md b/doc/plugins/fault-injection.md index cb895ef62092..7a90b8abcfee 100644 --- a/doc/plugins/fault-injection.md +++ b/doc/plugins/fault-injection.md @@ -17,7 +17,7 @@ # --> -# [Chinese](fault-injection-cn.md) +# [Chinese](../zh-cn/plugins/fault-injection.md) ## Name diff --git a/doc/plugins/grpc-transcode.md b/doc/plugins/grpc-transcode.md index 39f2f5d5db18..cc9ca4ac3f2a 100644 --- a/doc/plugins/grpc-transcode.md +++ b/doc/plugins/grpc-transcode.md @@ -17,7 +17,7 @@ # --> -# [Chinese](grpc-transcode-cn.md) +# [Chinese](../zh-cn/plugins/grpc-transcode.md) ## Name diff --git a/doc/plugins/ip-restriction.md b/doc/plugins/ip-restriction.md index 92c735f24d89..68b50f65d413 100644 --- a/doc/plugins/ip-restriction.md +++ b/doc/plugins/ip-restriction.md @@ -17,7 +17,7 @@ # --> -[Chinese](ip-restriction-cn.md) +[Chinese](../zh-cn/plugins/ip-restriction.md) # Summary - [**Name**](#name) diff --git a/doc/plugins/jwt-auth.md b/doc/plugins/jwt-auth.md index ed57175159a7..f2e8bfa85556 100644 --- a/doc/plugins/jwt-auth.md +++ b/doc/plugins/jwt-auth.md @@ -17,7 +17,7 @@ # --> -[Chinese](jwt-auth-cn.md) +[Chinese](../zh-cn/plugins/jwt-auth.md) # Summary - [**Name**](#name) diff --git a/doc/plugins/key-auth.md b/doc/plugins/key-auth.md index acb02f77bb96..2e28f4865876 100644 --- a/doc/plugins/key-auth.md +++ b/doc/plugins/key-auth.md @@ -17,7 +17,7 @@ # --> -[Chinese](key-auth-cn.md) +[Chinese](../zh-cn/plugins/key-auth.md) # Summary - [**Name**](#name) diff --git a/doc/plugins/limit-conn.md b/doc/plugins/limit-conn.md index 2814dc09492d..3fe8a26901f3 100644 --- a/doc/plugins/limit-conn.md +++ b/doc/plugins/limit-conn.md @@ -17,7 +17,7 @@ # --> -[Chinese](limit-conn-cn.md) +[Chinese](../zh-cn/plugins/limit-conn.md) # Summary - [**Name**](#name) diff --git a/doc/plugins/limit-count.md b/doc/plugins/limit-count.md index 52da529dbd47..4d03a1d06040 100644 --- a/doc/plugins/limit-count.md +++ b/doc/plugins/limit-count.md @@ -17,7 +17,7 @@ # --> -[Chinese](limit-count-cn.md) +[Chinese](../zh-cn/plugins/limit-count.md) # Summary diff --git a/doc/plugins/limit-req.md b/doc/plugins/limit-req.md index 9ba84ad6a211..5a5d7c2c26e7 100644 --- a/doc/plugins/limit-req.md +++ b/doc/plugins/limit-req.md @@ -17,7 +17,7 @@ # --> -# [Chinese](limit-req-cn.md) +# [Chinese](../zh-cn/plugins/limit-req.md) # Summary diff --git a/doc/plugins/mqtt-proxy.md b/doc/plugins/mqtt-proxy.md index 83ff9f9cc863..49900b7dfe01 100644 --- a/doc/plugins/mqtt-proxy.md +++ b/doc/plugins/mqtt-proxy.md @@ -17,7 +17,7 @@ # --> -[中文](mqtt-proxy-cn.md) +[中文](../zh-cn/plugins/mqtt-proxy.md) # Summary - [**Name**](#name) diff --git a/doc/plugins/prometheus.md b/doc/plugins/prometheus.md index 1b57a97cef3f..3f882f7107a5 100644 --- a/doc/plugins/prometheus.md +++ b/doc/plugins/prometheus.md @@ -17,7 +17,7 @@ # --> -[Chinese](prometheus-cn.md) +[Chinese](../zh-cn/plugins/prometheus.md) # prometheus This plugin exposes metrics in Prometheus Exposition format. diff --git a/doc/plugins/proxy-cache.md b/doc/plugins/proxy-cache.md index 618995ebbff8..8993dd8c640e 100644 --- a/doc/plugins/proxy-cache.md +++ b/doc/plugins/proxy-cache.md @@ -17,7 +17,7 @@ # --> -[Chinese](proxy-cache-cn.md) +[Chinese](../zh-cn/plugins/proxy-cache.md) # proxy-cache diff --git a/doc/plugins/proxy-mirror.md b/doc/plugins/proxy-mirror.md index 7f5655451af3..c209d73d65ab 100644 --- a/doc/plugins/proxy-mirror.md +++ b/doc/plugins/proxy-mirror.md @@ -17,7 +17,7 @@ # --> -[Chinese](proxy-mirror-cn.md) +[Chinese](../zh-cn/plugins/proxy-mirror.md) # proxy-mirror diff --git a/doc/plugins/proxy-rewrite.md b/doc/plugins/proxy-rewrite.md index fa73438671f1..6221c5a9761e 100644 --- a/doc/plugins/proxy-rewrite.md +++ b/doc/plugins/proxy-rewrite.md @@ -17,7 +17,7 @@ # --> -[Chinese](proxy-rewrite-cn.md) +[Chinese](../zh-cn/plugins/proxy-rewrite.md) # Summary - [**Name**](#name) diff --git a/doc/plugins/redirect.md b/doc/plugins/redirect.md index 6c7da6fbb7b3..b288c37935d7 100644 --- a/doc/plugins/redirect.md +++ b/doc/plugins/redirect.md @@ -17,7 +17,7 @@ # --> -[Chinese](redirect-cn.md) +[Chinese](../zh-cn/plugins/redirect.md) # Summary - [**Name**](#name) diff --git a/doc/plugins/response-rewrite.md b/doc/plugins/response-rewrite.md index cd676a53271b..f1c8576ce364 100644 --- a/doc/plugins/response-rewrite.md +++ b/doc/plugins/response-rewrite.md @@ -17,7 +17,7 @@ # --> -[Chinese](response-rewrite-cn.md) +[Chinese](../zh-cn/plugins/response-rewrite.md) # Summary diff --git a/doc/plugins/serverless.md b/doc/plugins/serverless.md index bb6a30fb35f0..d2e370e399c5 100644 --- a/doc/plugins/serverless.md +++ b/doc/plugins/serverless.md @@ -17,7 +17,7 @@ # --> -[Chinese](serverless-cn.md) +[Chinese](../zh-cn/plugins/serverless.md) # Summary diff --git a/doc/plugins/skywalking.md b/doc/plugins/skywalking.md index 63f0228fe355..1eefe7c86707 100644 --- a/doc/plugins/skywalking.md +++ b/doc/plugins/skywalking.md @@ -17,7 +17,7 @@ # --> -[Chinese](skywalking-cn.md) +[Chinese](../zh-cn/plugins/skywalking.md) # Summary - [**Summary**](#Summary) diff --git a/doc/plugins/wolf-rbac.md b/doc/plugins/wolf-rbac.md index 6e94ee68486f..c8a5de3a605b 100644 --- a/doc/plugins/wolf-rbac.md +++ b/doc/plugins/wolf-rbac.md @@ -17,7 +17,7 @@ # --> -[中文](wolf-rbac-cn.md) +[中文](../zh-cn/plugins/wolf-rbac.md) # Summary diff --git a/doc/plugins/zipkin.md b/doc/plugins/zipkin.md index 217f3c6fb060..ec8008707fe2 100644 --- a/doc/plugins/zipkin.md +++ b/doc/plugins/zipkin.md @@ -17,7 +17,7 @@ # --> -[Chinese](zipkin-cn.md) +[Chinese](../zh-cn/plugins/zipkin.md) # Summary - [**Name**](#name) diff --git a/doc/stand-alone.md b/doc/stand-alone.md index 2093ae4744e7..b88d81aa3ee5 100644 --- a/doc/stand-alone.md +++ b/doc/stand-alone.md @@ -17,7 +17,7 @@ # --> -[Chinese](stand-alone-cn.md) +[Chinese](zh-cn/stand-alone.md) ## Stand-alone mode diff --git a/doc/stream-proxy.md b/doc/stream-proxy.md index 7956be7496c2..606b92786b96 100644 --- a/doc/stream-proxy.md +++ b/doc/stream-proxy.md @@ -17,7 +17,7 @@ # --> -[Chinese](stream-proxy-cn.md) +[Chinese](zh-cn/stream-proxy.md) # Stream Proxy diff --git a/doc/zh-cn/README.md b/doc/zh-cn/README.md new file mode 100644 index 000000000000..d38537d6871c --- /dev/null +++ b/doc/zh-cn/README.md @@ -0,0 +1,68 @@ + +[English](../README.md) + +Reference document +================== + +* [APISIX 说明](../../README_CN.md) +* [架构设计](architecture-design.md) +* [压力测试](benchmark.md) +* [如何构建 Apache APISIX](how-to-build.md) +* [健康检查](../health-check.md): 支持对上游节点的主动和被动健康检查,在负载均衡时自动过滤掉不健康的节点。 +* Router(路由) + * [radixtree](../router-radixtree.md) + * [r3](router-r3.md) +* [独立运行模型](stand-alone.md): 支持从本地 yaml 格式的配置文件启动,更适合 Kubernetes(k8s) 体系。 +* [TCP/UDP 动态代理](stream-proxy.md) +* [管理 API](admin-api.md) +* [变更日志](../../CHANGELOG_CN.md) +* [代码风格](../CODE_STYLE.md) +* [常见问答](../../FAQ_CN.md) + +插件 +=== + +* [插件热加载](plugins.md):无需重启服务,完成插件热加载或卸载。 +* [HTTPS](https.md):根据 TLS 扩展字段 SNI(Server Name Indication) 动态加载证书。 +* [动态负载均衡](architecture-design.md#upstream):跨多个上游服务的动态负载均衡,目前已支持 round-robin 和一致性哈希算法。 +* [key-auth](plugins/key-auth.md):基于 Key Authentication 的用户认证。 +* [JWT-auth](plugins/jwt-auth.md):基于 [JWT](https://jwt.io/) (JSON Web Tokens) Authentication 的用户认证。 +* [basic-auth](plugins/basic-auth.md):基于 basic auth 的用户认证。 +* [wolf-rbac](plugins/wolf-rbac.md) 基于 *RBAC* 的用户认证及授权。 +* [limit-count](plugins/limit-count.md):基于“固定窗口”的限速实现。 +* [limit-req](plugins/limit-req.md):基于漏桶原理的请求限速实现。 +* [limit-conn](plugins/limit-conn.md):限制并发请求(或并发连接)。 +* [proxy-rewrite](plugins/proxy-rewrite.md): 支持自定义修改 proxy 到上游的信息。 +* [prometheus](plugins/prometheus.md):以 Prometheus 格式导出 APISIX 自身的状态信息,方便被外部 Prometheus 服务抓取。 +* [OpenTracing](plugins/zipkin.md):支持 Zikpin 和 Apache SkyWalking。 +* [grpc-transcode](plugins/grpc-transcode.md):REST <--> gRPC 转码。 +* [serverless](plugins/serverless.md):允许在 APISIX 中的不同阶段动态运行 Lua 代码。 +* [ip-restriction](plugins/ip-restriction.md): IP 黑白名单。 +* [openid-connect](../plugins/oauth.md) +* [redirect](plugins/redirect.md): URI 重定向。 +* [response-rewrite](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。 +* [fault-injection](plugins/fault-injection.md):故障注入,可以返回指定的响应体、响应码和响应时间,从而提供了不同的失败场景下处理的能力,例如服务失败、服务过载、服务高延时等。 +* [proxy-cache](plugins/proxy-cache.md):代理缓存插件提供缓存后端响应数据的能力。 +* [proxy-mirror](plugins/proxy-mirror.md):代理镜像插件提供镜像客户端请求的能力。 +* [udp-logger](../plugins/udp-logger.md): 将请求记录到UDP服务器 +* [tcp-logger](../plugins/tcp-logger.md): 将请求记录到TCP服务器 +* [kafka-logger](plugins/kafka-logger.md): 将请求记录到外部Kafka服务器。 +* [cors](plugins/cors.md): 为你的API启用CORS. +* [batch-requests](plugins/batch-requests.md): 以 **http pipeline** 的方式在网关一次性发起多个 `http` 请求。 diff --git a/doc/zh-cn/_sidebar.md b/doc/zh-cn/_sidebar.md new file mode 100644 index 000000000000..378e970fe0da --- /dev/null +++ b/doc/zh-cn/_sidebar.md @@ -0,0 +1,85 @@ +- Getting started + + - [Introduction](./zh-cn/README.md) + - [Quick start](./zh-cn/getting-started.md) + +- General + + - [Architecture](./zh-cn/architecture-design.md) + + - [Benchmark](./zh-cn/benchmark.md) + + - Installation + + - [How to build](./zh-cn/how-to-build.md) + - [Install Dependencies](./zh-cn/install-dependencies.md) + + - [HTTPS](./zh-cn/https.md) + + - [Router](./zh-cn/router-radixtree.md) + + - Plugins + + - [Develop Plugins](./zh-cn/plugin-develop.md) + - [Hot Reload](./zh-cn/plugins.md) + + - Proxy Modes + + - [GRPC Proxy](./zh-cn/grpc-proxy.md) + - [Stream Proxy](./zh-cn/stream-proxy.md) + +- Plugins + + - Authentication + + - [Key Auth](./zh-cn/plugins/key-auth.md) + - [Basic Auth](./zh-cn/plugins/basic-auth.md) + - [JWT Auth](./zh-cn/plugins/jwt-auth.md) + - [Opend ID Connect](./zh-cn/plugins/oauth.md) + + - Loggers + + - [HTTP Logger](./zh-cn/plugins/http-logger.md) + - [Kafka Logger](./zh-cn/plugins/kafka-logger.md) + - [Syslog](./zh-cn/plugins/syslog.md) + - [TCP Logger](./zh-cn/plugins/tcp-logger.md) + - [UDP Logger](./zh-cn/plugins/udp-logger.md) + + - Monitoring + + - [Prometheus](./zh-cn/plugins/prometheus.md) + - [SKywalking](./zh-cn/plugins/skywalking.md) + - [Zipkin](./zh-cn/plugins/zipkin.md) + + - General + + - [Redirect](./zh-cn/plugins/redirect.md) + - [Serverless](./zh-cn/plugins/serverless.md) + - [Batch Request](./zh-cn/plugins/batch-requests.md) + - [Fault Injection](./zh-cn/plugins/fault-injection.md) + - [MQTT Proxy](./zh-cn/plugins/mqtt-proxy.md) + - [Proxy Cache](./zh-cn/plugins/proxy-cache.md) + - [Proxy Mirror](./zh-cn/plugins/proxy-mirror.md) + - [Echo](./zh-cn/plugins/echo.md) + + - Transformations + + - [Response Rewrite](./zh-cn/plugins/response-rewrite.md) + - [Proxy Rewrite](./zh-cn/plugins/proxy-rewrite.md) + - [GRPC Transcoding](./zh-cn/plugins/grpc-transcode.md) + + - Security + + - [Consumer Restriction](./zh-cn/plugins/consumer-restriction.md) + - [Limit Connection](./zh-cn/plugins/limit-conn.md) + - [Limit Count](./zh-cn/plugins/limit-count.md) + - [Limit Request](./zh-cn/plugins/limit-req.md) + - [CORS](./zh-cn/plugins/cors.md) + - [IP Restriction](./zh-cn/plugins/ip-restriction.md) + - [Keycloak Authorization](./zh-cn/plugins/authz-keycloak.md) + - [RBAC Wolf](./zh-cn/plugins/wolf-rbac.md) + + +- Admin API + + - [Admin API](./zh-cn/admin-api.md) diff --git a/doc/admin-api-cn.md b/doc/zh-cn/admin-api.md similarity index 97% rename from doc/admin-api-cn.md rename to doc/zh-cn/admin-api.md index 0e80d0e07c96..5500c101e2e5 100644 --- a/doc/admin-api-cn.md +++ b/doc/zh-cn/admin-api.md @@ -52,12 +52,12 @@ |名字 |可选项 |类型 |说明 |示例| |---------|---------|----|-----------|----| -|uri |与 `uris` 二选一 |匹配规则|除了如 `/foo/bar`、`/foo/gloo` 这种全量匹配外,使用不同 [Router](architecture-design-cn.md#router) 还允许更高级匹配,更多见 [Router](architecture-design-cn.md#router)。|"/hello"| +|uri |与 `uris` 二选一 |匹配规则|除了如 `/foo/bar`、`/foo/gloo` 这种全量匹配外,使用不同 [Router](architecture-design.md#router) 还允许更高级匹配,更多见 [Router](architecture-design.md#router)。|"/hello"| |uris |与 `uri` 二选一 |匹配规则|数组形式,可以匹配多个 `uri`|["/hello", "/world"]| -|plugins |`plugins`、`upstream`/`upstream_id`、`service_id`至少选择一个 |Plugin|详见 [Plugin](architecture-design-cn.md#plugin) || -|upstream |`plugins`、`upstream`/`upstream_id`、`service_id`至少选择一个 |Upstream|启用的 Upstream 配置,详见 [Upstream](architecture-design-cn.md#upstream)|| -|upstream_id|`plugins`、`upstream`/`upstream_id`、`service_id`至少选择一个 |Upstream|启用的 upstream id,详见 [Upstream](architecture-design-cn.md#upstream)|| -|service_id|`plugins`、`upstream`/`upstream_id`、`service_id`至少选择一个 |Service|绑定的 Service 配置,详见 [Service](architecture-design-cn.md#service)|| +|plugins |`plugins`、`upstream`/`upstream_id`、`service_id`至少选择一个 |Plugin|详见 [Plugin](architecture-design.md#plugin) || +|upstream |`plugins`、`upstream`/`upstream_id`、`service_id`至少选择一个 |Upstream|启用的 Upstream 配置,详见 [Upstream](architecture-design.md#upstream)|| +|upstream_id|`plugins`、`upstream`/`upstream_id`、`service_id`至少选择一个 |Upstream|启用的 upstream id,详见 [Upstream](architecture-design.md#upstream)|| +|service_id|`plugins`、`upstream`/`upstream_id`、`service_id`至少选择一个 |Service|绑定的 Service 配置,详见 [Service](architecture-design.md#service)|| |service_protocol|可选|上游协议类型|只可以是 "grpc", "http" 二选一。|默认 "http",使用gRPC proxy 或gRPC transcode 时,必须用"grpc"| |name |可选 |辅助 |标识路由名称|route-xxxx| |desc |可选 |辅助 |标识描述、使用场景等。|客户 xxxx| @@ -195,9 +195,9 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13 |名字 |可选项 |类型 |说明 |示例| |---------|---------|----|-----------|----| -|plugins |可选 |Plugin|详见 [Plugin](architecture-design-cn.md#plugin) || -|upstream | upstream 或 upstream_id 两个选一个 |Upstream|启用的 Upstream 配置,详见 [Upstream](architecture-design-cn.md#upstream)|| -|upstream_id| upstream 或 upstream_id 两个选一个 |Upstream|启用的 upstream id,详见 [Upstream](architecture-design-cn.md#upstream)|| +|plugins |可选 |Plugin|详见 [Plugin](architecture-design.md#plugin) || +|upstream | upstream 或 upstream_id 两个选一个 |Upstream|启用的 Upstream 配置,详见 [Upstream](architecture-design.md#upstream)|| +|upstream_id| upstream 或 upstream_id 两个选一个 |Upstream|启用的 upstream id,详见 [Upstream](architecture-design.md#upstream)|| |name |可选 |辅助 |标识服务名称。|| |desc |可选 |辅助 |服务描述、使用场景等。|| @@ -352,7 +352,7 @@ APISIX 的 Upstream 除了基本的复杂均衡算法选择外,还支持对上 |k8s_deployment_info|与 `nodes` 二选一|哈希表|字段包括 `namespace`、`deploy_name`、`service_name`、`port`、`backend_type`,其中 `port` 字段为数值,`backend_type` 为 `pod` 或 `service`,其他为字符串 | `{"namespace": "test-namespace", "deploy_name": "test-deploy-name", "service_name": "test-service-name", "backend_type": "pod", "port": 8080}` | |type |必需|枚举|`roundrobin` 支持权重的负载,`chash` 一致性哈希,两者是二选一的|`roundrobin`|| |key |条件必需|匹配类型|该选项只有类型是 `chash` 才有效。根据 `key` 来查找对应的 node `id`,相同的 `key` 在同一个对象中,永远返回相同 id,目前支持的 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)|| -|checks |可选|health_checker|配置健康检查的参数,详细可参考[health-check](health-check.md)|| +|checks |可选|health_checker|配置健康检查的参数,详细可参考[health-check](../health-check.md)|| |retries |可选|整型|使用底层的 Nginx 重试机制将请求传递给下一个上游,默认不启用重试机制|| |timeout |可选|超时时间对象|设置连接、发送消息、接收消息的超时时间|| |enable_websocket |可选 |辅助|是否允许启用 websocket 能力|| diff --git a/doc/architecture-design-cn.md b/doc/zh-cn/architecture-design.md similarity index 96% rename from doc/architecture-design-cn.md rename to doc/zh-cn/architecture-design.md index b6bd0a94bdcd..b91cfedc2c9c 100644 --- a/doc/architecture-design-cn.md +++ b/doc/zh-cn/architecture-design.md @@ -34,7 +34,7 @@ ### 插件加载流程 -![插件加载流程](./images/flow-load-plugin.png) +![插件加载流程](../images/flow-load-plugin.png) ### 插件内部结构 @@ -105,7 +105,7 @@ Server: APISIX web server 当我们接收到成功应答,表示该 Route 已成功创建。 -有关 Route 的具体选项,可具体查阅 [Admin API 之 Route](admin-api-cn.md#route)。 +有关 Route 的具体选项,可具体查阅 [Admin API 之 Route](admin-api.md#route)。 [返回目录](#目录) @@ -193,7 +193,7 @@ curl http://127.0.0.1:9080/apisix/admin/routes/102 -H 'X-API-KEY: edd1c9f034335f 优先级更高。 一个插件在一次请求中只会执行一次,即使被同时绑定到多个不同对象中(比如 Route 或 Service)。 -插件运行先后顺序是根据插件自身的优先级来决定的,例如:[example-plugin](../apisix/plugins/example-plugin.lua#L37)。 +插件运行先后顺序是根据插件自身的优先级来决定的,例如:[example-plugin](../../apisix/plugins/example-plugin.lua#L37)。 插件配置作为 Route 或 Service 的一部分提交的,放到 `plugins` 下。它内部是使用插件 名字作为哈希的 key 来保存不同插件的配置项。 @@ -216,7 +216,7 @@ curl http://127.0.0.1:9080/apisix/admin/routes/102 -H 'X-API-KEY: edd1c9f034335f 并不是所有插件都有具体配置项,比如 `prometheus` 下是没有任何具体配置项,这时候用一个空的对象 标识即可。 -[查看 APISIX 已支持插件列表](plugins-cn.md) +[查看 APISIX 已支持插件列表](plugins.md) [返回目录](#目录) @@ -239,11 +239,11 @@ APISIX 的 Upstream 除了基本的复杂均衡算法选择外,还支持对上 |------- |-----|------| |type |必填|`roundrobin` 支持权重的负载,`chash` 一致性哈希,两者是二选一的| |nodes |与 `k8s_deployment_info`、 `service_name` 三选一|哈希表,内部元素的 key 是上游机器地址列表,格式为`地址 + Port`,其中地址部分可以是 IP 也可以是域名,比如 `192.168.1.100:80`、`foo.com:80` 等。value 则是节点的权重。当权重值为 `0` 代表该上游节点失效,不会被选中,可以用于暂时摘除节点的情况。| -|service_name |与 `nodes`、 `k8s_deployment_info` 三选一 |用于设置上游服务名,并配合注册中心使用,详细可参考[集成服务发现注册中心](discovery-cn.md) | +|service_name |与 `nodes`、 `k8s_deployment_info` 三选一 |用于设置上游服务名,并配合注册中心使用,详细可参考[集成服务发现注册中心](discovery.md) | |k8s_deployment_info|与 `nodes`、 `service_name` 三选一|哈希表|字段包括 `namespace`、`deploy_name`、`service_name`、`port`、`backend_type`,其中 `port` 字段为数值,`backend_type` 为 `pod` 或 `service`,其他为字符串 | |key |可选|在 `type` 等于 `chash` 是必选项。 `key` 需要配合 `hash_on` 来使用,通过 `hash_on` 和 `key` 来查找对应的 node `id`| |hash_on |可选|`hash_on` 支持的类型有 `vars`(Nginx内置变量),`header`(自定义header),`cookie`,`consumer`,默认值为 `vars`| -|checks |可选|配置健康检查的参数,详细可参考[health-check](health-check.md)| +|checks |可选|配置健康检查的参数,详细可参考[health-check](../health-check.md)| |retries |可选|使用底层的 Nginx 重试机制将请求传递给下一个上游,默认 APISIX 会启用重试机制,根据配置的后端节点个数设置重试次数,如果此参数显式被设置将会覆盖系统默认设置的重试次数。| |enable_websocket|可选| 是否启用 `websocket`(布尔值),默认不启用| @@ -353,7 +353,7 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13 }' ``` -更多细节可以参考[健康检查的文档](health-check.md)。 +更多细节可以参考[健康检查的文档](../health-check.md)。 下面是几个使用不同`hash_on`类型的配置示例: @@ -460,7 +460,7 @@ APISIX 区别于其他 API 网关的一大特点是允许用户选择不同 Rout 在本地配置 `conf/config.yaml` 中设置最符合自身业务需求的路由。 * `apisix.router.http`: HTTP 请求路由。 - * `radixtree_uri`: (默认)只使用 `uri` 作为主索引。基于 `radixtree` 引擎,支持全量和深前缀匹配,更多见 [如何使用 router-radixtree](router-radixtree.md)。 + * `radixtree_uri`: (默认)只使用 `uri` 作为主索引。基于 `radixtree` 引擎,支持全量和深前缀匹配,更多见 [如何使用 router-radixtree](../router-radixtree.md)。 * `绝对匹配`:完整匹配给定的 `uri` ,比如 `/foo/bar`,`/foo/glo`。 * `前缀匹配`:末尾使用 `*` 代表给定的 `uri` 是前缀匹配。比如 `/foo*`,则允许匹配 `/foo/`、`/foo/a`和`/foo/b`等。 * `匹配优先级`:优先尝试绝对匹配,若无法命中绝对匹配,再尝试前缀匹配。 @@ -490,14 +490,14 @@ APISIX 区别于其他 API 网关的一大特点是允许用户选择不同 Rout -1. 授权认证:比如有 [key-auth](./plugins/key-auth.md)、[JWT](./plugins/jwt-auth-cn.md) 等。 +1. 授权认证:比如有 [key-auth](../plugins/key-auth.md)、[JWT](plugins/jwt-auth.md) 等。 2. 获取 consumer_id:通过授权认证,即可自然获取到对应的 Consumer `id`,它是 Consumer 对象的唯一识别标识。 3. 获取 Consumer 上绑定的 Plugin 或 Upstream 信息:完成对不同 Consumer 做不同配置的效果。 概括一下,Consumer 是某类服务的消费者,需与用户认证体系配合才能使用。 比如不同的 Consumer 请求同一个 API,网关服务根据当前请求用户信息,对应不同的 Plugin 或 Upstream 配置。 -此外,大家也可以参考 [key-auth](./plugins/key-auth.md) 认证授权插件的调用逻辑,辅助大家来进一步理解 Consumer 概念和使用。 +此外,大家也可以参考 [key-auth](../plugins/key-auth.md) 认证授权插件的调用逻辑,辅助大家来进一步理解 Consumer 概念和使用。 如何对某个 Consumer 开启指定插件,可以看下面例子: @@ -548,7 +548,7 @@ HTTP/1.1 503 Service Temporarily Unavailable ``` -结合 [consumer-restriction](./plugins/consumer-restriction-cn.md) 插件,限制jack对该 route 的访问 +结合 [consumer-restriction](plugins/consumer-restriction.md) 插件,限制jack对该 route 的访问 # 设置黑名单,禁止jack访问该API $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' diff --git a/doc/batch-processor-cn.md b/doc/zh-cn/batch-processor.md similarity index 98% rename from doc/batch-processor-cn.md rename to doc/zh-cn/batch-processor.md index 92ecb7783df1..e9cfe2816bbb 100644 --- a/doc/batch-processor-cn.md +++ b/doc/zh-cn/batch-processor.md @@ -17,7 +17,7 @@ # --> -[English](batch-processor.md) +[English](../batch-processor.md) # 批处理机 diff --git a/doc/benchmark-cn.md b/doc/zh-cn/benchmark.md similarity index 96% rename from doc/benchmark-cn.md rename to doc/zh-cn/benchmark.md index b42cf90f4763..5e1dd4c80b65 100644 --- a/doc/benchmark-cn.md +++ b/doc/zh-cn/benchmark.md @@ -17,7 +17,7 @@ # --> -[English](benchmark.md) +[English](../benchmark.md) ### 测试环境 @@ -66,4 +66,4 @@ #### 火焰图 火焰图的采样结果: -![火焰图采样结果](../doc/images/flamegraph-2.jpg) +![火焰图采样结果](../images/flamegraph-2.jpg) diff --git a/doc/discovery-cn.md b/doc/zh-cn/discovery.md similarity index 99% rename from doc/discovery-cn.md rename to doc/zh-cn/discovery.md index b748921468d8..003cc287be8d 100644 --- a/doc/discovery-cn.md +++ b/doc/zh-cn/discovery.md @@ -16,7 +16,7 @@ # limitations under the License. # --> -[English](discovery.md) +[English](../discovery.md) # 集成服务发现注册中心 @@ -35,7 +35,7 @@ 当业务量发生变化时,需要对上游服务进行扩缩容,或者因服务器硬件故障需要更换服务器。如果网关是通过配置来维护上游服务信息,在微服务架构模式下,其带来的维护成本可想而知。再者因不能及时更新这些信息,也会对业务带来一定的影响,还有人为误操作带来的影响也不可忽视,所以网关非常必要通过服务注册中心动态获取最新的服务实例信息。架构图如下所示: -![](./images/discovery-cn.png) +![](../images/discovery-cn.png) 1. 服务启动时将自身的一些信息,比如服务名、IP、端口等信息上报到注册中心;各个服务与注册中心使用一定机制(例如心跳)通信,如果注册中心与服务长时间无法通信,就会注销该实例;当服务下线时,会删除注册中心的实例信息; 2. 网关会准实时地从注册中心获取服务实例信息; @@ -58,7 +58,7 @@ APISIX 要扩展注册中心其实是件非常容易的事情,其基本步骤 #### 实现 eureka.lua -首先在 `apisix/discovery/` 目录中添加 [`eureka.lua`](../apisix/discovery/eureka.lua); +首先在 `apisix/discovery/` 目录中添加 [`eureka.lua`](../../apisix/discovery/eureka.lua); 然后在 `eureka.lua` 实现用于初始化的 `init_worker` 函数以及用于获取服务实例节点列表的 `nodes` 函数即可: diff --git a/doc/getting-started-cn.md b/doc/zh-cn/getting-started.md similarity index 97% rename from doc/getting-started-cn.md rename to doc/zh-cn/getting-started.md index 8825279b030b..556533d42c68 100644 --- a/doc/getting-started-cn.md +++ b/doc/zh-cn/getting-started.md @@ -16,7 +16,7 @@ # limitations under the License. # --> -[English](getting-started.md) +[English](../getting-started.md) # 快速入门指南 @@ -38,12 +38,12 @@ $ curl --location --request GET "https://httpbin.org/get?foo1=bar1&foo2=bar2" ## 前提 -- 本指南使用 docker 和 docker compose 来安装 Apache APISIX。 但是, 如果您已经以其他方式安装了 Apache APISIX ,您只需跳到 [第二步](getting-started-cn.md#第二步:-在-APISIX-中设置路由) 。 +- 本指南使用 docker 和 docker compose 来安装 Apache APISIX。 但是, 如果您已经以其他方式安装了 Apache APISIX ,您只需跳到 [第二步](getting-started.md#第二步:-在-APISIX-中设置路由) 。 - Curl:指南使用 Curl 命令进行 API 测试,但是您也可以使用您选择的任何其他工具( 例如 Postman )。 ## 第一步: 安装 APISIX -Apache APISIX 可以多种操作环境中安装。[如何安装文档](how-to-build-cn.md#installation-via-source-release) 显示了多个平台中的安装步骤。 +Apache APISIX 可以多种操作环境中安装。[如何安装文档](how-to-build.md#installation-via-source-release) 显示了多个平台中的安装步骤。 为了快速入门,让我们基于 docker 容器的安装方式进行安装。启动 Apache APISIX 服务,我们可以参照这个镜像文件[repository](https://github.com/apache/incubator-apisix-docker) 并切换到 example 文件夹下执行如下命令。 如下命令会启动 Apache APISIX 服务并默认在 9080 端口( https 请求是 9443 端口) 提供 admin API 接口服务 @@ -240,7 +240,7 @@ curl -i -X GET http://127.0.0.1:9080/samplePrefix/get?param1=foo¶m2=bar -H ' 到目前为止,已经通过使用 admin API 接口编排对 Apache APISIX 的 API 的调用。然而,Apache APISIX 还提供执行类似操作的一个 web 应用,就是web控制台。 可以在[repository](https://github.com/apache/incubator-apisix)中使用。控制台是直观的,您可以通过它编排同样的路由配置。 -![Dashboard](images/dashboard.png) +![Dashboard](../images/dashboard.png) ### 故障排查 diff --git a/doc/grpc-proxy-cn.md b/doc/zh-cn/grpc-proxy.md similarity index 96% rename from doc/grpc-proxy-cn.md rename to doc/zh-cn/grpc-proxy.md index 8c5a4e625a05..3f76fd8bec65 100644 --- a/doc/grpc-proxy-cn.md +++ b/doc/zh-cn/grpc-proxy.md @@ -17,7 +17,7 @@ # --> -[English](grpc-proxy.md) +[English](../grpc-proxy.md) # grpc-proxy @@ -35,7 +35,7 @@ 在指定 Route 中,代理 gRPC 服务接口: * 注意: 这个 Route 的属性 `service_protocol` 必须设置为 `grpc`; -* 注意: APISIX 使用 TLS 加密的 HTTP/2 暴露 gRPC 服务, 所以需要先 [配置 SSL 证书](https-cn.md); +* 注意: APISIX 使用 TLS 加密的 HTTP/2 暴露 gRPC 服务, 所以需要先 [配置 SSL 证书](https.md); * 下面例子所代理的 gRPC 服务可供参考:[grpc_server_example](https://github.com/iresty/grpc_server_example)。 ```shell diff --git a/doc/how-to-build-cn.md b/doc/zh-cn/how-to-build.md similarity index 99% rename from doc/how-to-build-cn.md rename to doc/zh-cn/how-to-build.md index b838883302b0..708cadac4f40 100644 --- a/doc/how-to-build-cn.md +++ b/doc/zh-cn/how-to-build.md @@ -23,7 +23,7 @@ Apache APISIX 的运行环境需要 Nginx 和 etcd, -所以在安装前,请根据不同的操作系统来[安装依赖](install-dependencies-cn.md)。 +所以在安装前,请根据不同的操作系统来[安装依赖](install-dependencies.md)。 ## 2. 安装 Apache APISIX diff --git a/doc/https-cn.md b/doc/zh-cn/https.md similarity index 99% rename from doc/https-cn.md rename to doc/zh-cn/https.md index 4ea82d5f21fb..33ce14c22137 100644 --- a/doc/https-cn.md +++ b/doc/zh-cn/https.md @@ -17,7 +17,7 @@ # --> -[English](https.md) +[English](../https.md) ### HTTPS diff --git a/doc/install-dependencies-cn.md b/doc/zh-cn/install-dependencies.md similarity index 98% rename from doc/install-dependencies-cn.md rename to doc/zh-cn/install-dependencies.md index 1ada388b756e..fed9c1d1e6f2 100644 --- a/doc/install-dependencies-cn.md +++ b/doc/zh-cn/install-dependencies.md @@ -134,4 +134,4 @@ http://openresty.org/en/linux-packages.html ==== - Apache APISIX 目前只支持 `v2` 版本的 etcd,但是最新版的 etcd (从 3.4 起)已经默认关闭了 `v2` 版本的功能。所以你需要添加启动参数 `--enable-v2=true` 来开启 `v2` 的功能,目前对 `v3` etcd 的开发工作已经启动,不久后便可投入使用。 -- 如果你要想使用 Tengine 替代 OpenResty,请参考 [Install Tengine at Ubuntu](../.travis/linux_tengine_runner.sh)。 +- 如果你要想使用 Tengine 替代 OpenResty,请参考 [Install Tengine at Ubuntu](../../.travis/linux_tengine_runner.sh)。 diff --git a/doc/plugin-develop-cn.md b/doc/zh-cn/plugin-develop.md similarity index 99% rename from doc/plugin-develop-cn.md rename to doc/zh-cn/plugin-develop.md index 1494d525a668..85083ddf1e25 100644 --- a/doc/plugin-develop-cn.md +++ b/doc/zh-cn/plugin-develop.md @@ -16,7 +16,7 @@ # limitations under the License. # --> -[English](plugin-develop.md) +[English](../plugin-develop.md) # 目录 diff --git a/doc/plugins-cn.md b/doc/zh-cn/plugins.md similarity index 97% rename from doc/plugins-cn.md rename to doc/zh-cn/plugins.md index 103cfb070810..dc861fb6029e 100644 --- a/doc/plugins-cn.md +++ b/doc/zh-cn/plugins.md @@ -17,7 +17,7 @@ # --> -[English](plugins.md) +[English](../plugins.md) ## 热加载 diff --git a/doc/plugins/basic-auth-cn.md b/doc/zh-cn/plugins/basic-auth.md similarity index 96% rename from doc/plugins/basic-auth-cn.md rename to doc/zh-cn/plugins/basic-auth.md index e4e862d1ea83..f4442f0f658b 100644 --- a/doc/plugins/basic-auth-cn.md +++ b/doc/zh-cn/plugins/basic-auth.md @@ -17,7 +17,7 @@ # --> -# [English](basic-auth.md) +# [English](../../plugins/basic-auth.md) # 目录 @@ -58,10 +58,10 @@ curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f1 ``` 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 consumer: -![auth-1](../images/plugin/basic-auth-1.png) +![auth-1](../../images/plugin/basic-auth-1.png) 然后在 consumer 页面中添加 basic-auth 插件: -![auth-2](../images/plugin/basic-auth-2.png) +![auth-2](../../images/plugin/basic-auth-2.png) ### 2. 创建 Route 或 Service 对象,并开启 `basic-auth` 插件。 diff --git a/doc/plugins/batch-requests-cn.md b/doc/zh-cn/plugins/batch-requests.md similarity index 99% rename from doc/plugins/batch-requests-cn.md rename to doc/zh-cn/plugins/batch-requests.md index fb5d1994c227..bea6bd5ffc7d 100644 --- a/doc/plugins/batch-requests-cn.md +++ b/doc/zh-cn/plugins/batch-requests.md @@ -17,7 +17,7 @@ # --> -# [English](batch-requests.md) +# [English](../../plugins/batch-requests.md) # 目录 diff --git a/doc/plugins/consumer-restriction-cn.md b/doc/zh-cn/plugins/consumer-restriction.md similarity index 98% rename from doc/plugins/consumer-restriction-cn.md rename to doc/zh-cn/plugins/consumer-restriction.md index 7cea44c99a24..c1f3d1e35966 100644 --- a/doc/plugins/consumer-restriction-cn.md +++ b/doc/zh-cn/plugins/consumer-restriction.md @@ -17,7 +17,7 @@ # --> -[English](consumer-restriction.md) +[English](../../plugins/consumer-restriction.md) # 目录 - [**名字**](#名字) diff --git a/doc/plugins/cors-cn.md b/doc/zh-cn/plugins/cors.md similarity index 99% rename from doc/plugins/cors-cn.md rename to doc/zh-cn/plugins/cors.md index 413dc95acc85..bc26df7307cf 100644 --- a/doc/plugins/cors-cn.md +++ b/doc/zh-cn/plugins/cors.md @@ -17,7 +17,7 @@ # --> -# [English](cors.md) +# [English](../../plugins/cors.md) # 目录 diff --git a/doc/plugins/echo-cn.md b/doc/zh-cn/plugins/echo.md similarity index 100% rename from doc/plugins/echo-cn.md rename to doc/zh-cn/plugins/echo.md diff --git a/doc/plugins/fault-injection-cn.md b/doc/zh-cn/plugins/fault-injection.md similarity index 98% rename from doc/plugins/fault-injection-cn.md rename to doc/zh-cn/plugins/fault-injection.md index 29453a8115b4..d6155efe1b66 100644 --- a/doc/plugins/fault-injection-cn.md +++ b/doc/zh-cn/plugins/fault-injection.md @@ -17,7 +17,7 @@ # --> -# [English](fault-injection.md) +# [English](../../plugins/fault-injection.md) # fault-injection diff --git a/doc/plugins/grpc-transcode-cn.md b/doc/zh-cn/plugins/grpc-transcode.md similarity index 99% rename from doc/plugins/grpc-transcode-cn.md rename to doc/zh-cn/plugins/grpc-transcode.md index fef755d8d82a..b0c74601ffe9 100644 --- a/doc/plugins/grpc-transcode-cn.md +++ b/doc/zh-cn/plugins/grpc-transcode.md @@ -17,7 +17,7 @@ # --> -# [English](grpc-transcode.md) +# [English](../../plugins/grpc-transcode.md) # grpc-transcode diff --git a/doc/plugins/http-logger-cn.md b/doc/zh-cn/plugins/http-logger.md similarity index 100% rename from doc/plugins/http-logger-cn.md rename to doc/zh-cn/plugins/http-logger.md diff --git a/doc/plugins/ip-restriction-cn.md b/doc/zh-cn/plugins/ip-restriction.md similarity index 98% rename from doc/plugins/ip-restriction-cn.md rename to doc/zh-cn/plugins/ip-restriction.md index 87585740a1eb..89ecf5363e55 100644 --- a/doc/plugins/ip-restriction-cn.md +++ b/doc/zh-cn/plugins/ip-restriction.md @@ -17,7 +17,7 @@ # --> -[English](ip-restriction.md) +[English](../../plugins/ip-restriction.md) # 目录 - [**名字**](#名字) diff --git a/doc/plugins/jwt-auth-cn.md b/doc/zh-cn/plugins/jwt-auth.md similarity index 97% rename from doc/plugins/jwt-auth-cn.md rename to doc/zh-cn/plugins/jwt-auth.md index 8dfc5cb6b04e..8a33e8eec6e5 100644 --- a/doc/plugins/jwt-auth-cn.md +++ b/doc/zh-cn/plugins/jwt-auth.md @@ -17,7 +17,7 @@ # --> -[English](jwt-auth.md) +[English](../../plugins/jwt-auth.md) # 目录 - [**名字**](#名字) @@ -59,10 +59,10 @@ curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f1 }' ``` 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 consumer: -![](../images/plugin/jwt-auth-1.png) +![](../../images/plugin/jwt-auth-1.png) 然后在 consumer 页面中添加 jwt-auth 插件: -![](../images/plugin/jwt-auth-2.png) +![](../../images/plugin/jwt-auth-2.png) 2. 创建 Route 或 Service 对象,并开启 `jwt-auth` 插件。 diff --git a/doc/plugins/kafka-logger-cn.md b/doc/zh-cn/plugins/kafka-logger.md similarity index 98% rename from doc/plugins/kafka-logger-cn.md rename to doc/zh-cn/plugins/kafka-logger.md index 74b4196f2062..eecded5da01e 100644 --- a/doc/plugins/kafka-logger-cn.md +++ b/doc/zh-cn/plugins/kafka-logger.md @@ -32,7 +32,7 @@ 它可以将接口请求日志以 JSON 的形式推送给外部 Kafka 集群。如果在短时间内没有收到日志数据,请放心,它会在我们的批处理处理器中的计时器功能到期后自动发送日志。 有关 Apache APISIX 中 Batch-Processor 的更多信息,请参考。 -[Batch-Processor](../batch-processor-cn.md) +[Batch-Processor](../batch-processor.md) ## 属性 diff --git a/doc/plugins/key-auth-cn.md b/doc/zh-cn/plugins/key-auth.md similarity index 96% rename from doc/plugins/key-auth-cn.md rename to doc/zh-cn/plugins/key-auth.md index e7b392c69bea..0c2c75c7782e 100644 --- a/doc/plugins/key-auth-cn.md +++ b/doc/zh-cn/plugins/key-auth.md @@ -17,7 +17,7 @@ # --> -[English](key-auth.md) +[English](../../plugins/key-auth.md) # 目录 - [**名字**](#名字) @@ -54,10 +54,10 @@ curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f1 ``` 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 consumer: -![](../images/plugin/key-auth-1.png) +![](../../images/plugin/key-auth-1.png) 然后在 consumer 页面中添加 key-auth 插件: -![](../images/plugin/key-auth-2.png) +![](../../images/plugin/key-auth-2.png) 2. 创建 route 或 service 对象,并开启 `key-auth` 插件。 diff --git a/doc/plugins/limit-conn-cn.md b/doc/zh-cn/plugins/limit-conn.md similarity index 96% rename from doc/plugins/limit-conn-cn.md rename to doc/zh-cn/plugins/limit-conn.md index 7c3a1f3b6088..9bb7c3c76e2f 100644 --- a/doc/plugins/limit-conn-cn.md +++ b/doc/zh-cn/plugins/limit-conn.md @@ -17,7 +17,7 @@ # --> -[English](limit-conn.md) +[English](../../plugins/limit-conn.md) # limit-conn 限制并发请求(或并发连接)插件。 @@ -65,10 +65,10 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13 ``` 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 route: -![](../images/plugin/limit-conn-1.png) +![](../../images/plugin/limit-conn-1.png) 然后在 route 页面中添加 limit-conn 插件: -![](../images/plugin/limit-conn-2.png) +![](../../images/plugin/limit-conn-2.png) #### test plugin diff --git a/doc/plugins/limit-count-cn.md b/doc/zh-cn/plugins/limit-count.md similarity index 97% rename from doc/plugins/limit-count-cn.md rename to doc/zh-cn/plugins/limit-count.md index 0ea9808e7299..718c6af49e73 100644 --- a/doc/plugins/limit-count-cn.md +++ b/doc/zh-cn/plugins/limit-count.md @@ -17,7 +17,7 @@ # --> -[English](limit-count.md) +[English](../../plugins/limit-count.md) # limit-count @@ -69,10 +69,10 @@ curl -i http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335 ``` 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 route: -![添加路由](../images/plugin/limit-count-1.png) +![添加路由](../../images/plugin/limit-count-1.png) 然后在 route 页面中添加 limit-count 插件: -![添加插件](../images/plugin/limit-count-2.png) +![添加插件](../../images/plugin/limit-count-2.png) 如果你需要一个集群级别的流量控制,我们可以借助 redis server 来完成。不同的 APISIX 节点之间将共享流量限速结果,实现集群流量限速。 diff --git a/doc/plugins/limit-req-cn.md b/doc/zh-cn/plugins/limit-req.md similarity index 96% rename from doc/plugins/limit-req-cn.md rename to doc/zh-cn/plugins/limit-req.md index 799160cfdc37..420359e2a422 100644 --- a/doc/plugins/limit-req-cn.md +++ b/doc/zh-cn/plugins/limit-req.md @@ -17,7 +17,7 @@ # --> -# [English](limit-req.md) +# [English](../../plugins/limit-req.md) # limit-req @@ -64,11 +64,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 route: -![添加路由](../images/plugin/limit-req-1.png) +![添加路由](../../images/plugin/limit-req-1.png) 然后在 route 页面中添加 limit-req 插件: -![添加插件](../images/plugin/limit-req-2.png) +![添加插件](../../images/plugin/limit-req-2.png) ### 测试插件 diff --git a/doc/plugins/mqtt-proxy-cn.md b/doc/zh-cn/plugins/mqtt-proxy.md similarity index 98% rename from doc/plugins/mqtt-proxy-cn.md rename to doc/zh-cn/plugins/mqtt-proxy.md index 141e99897e26..d55a7d391d8e 100644 --- a/doc/plugins/mqtt-proxy-cn.md +++ b/doc/zh-cn/plugins/mqtt-proxy.md @@ -17,7 +17,7 @@ # --> -[English](mqtt-proxy.md) +[English](../../plugins/mqtt-proxy.md) # 目录 diff --git a/doc/plugins/prometheus-cn.md b/doc/zh-cn/plugins/prometheus.md similarity index 93% rename from doc/plugins/prometheus-cn.md rename to doc/zh-cn/plugins/prometheus.md index 1dd814285cf1..946d113d10a6 100644 --- a/doc/plugins/prometheus-cn.md +++ b/doc/zh-cn/plugins/prometheus.md @@ -17,7 +17,7 @@ # --> -[English](prometheus.md) +[English](../../plugins/prometheus.md) # prometheus @@ -51,11 +51,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 route: -![](../images/plugin/prometheus-1.png) +![](../../images/plugin/prometheus-1.png) 然后在 route 页面中添加 prometheus 插件: -![](../images/plugin/prometheus-2.png) +![](../../images/plugin/prometheus-2.png) ## 如何提取指标数据 @@ -78,9 +78,9 @@ scrape_configs: 我们也可以在 prometheus 控制台中去检查状态: -![](../../doc/images/plugin/prometheus01.png) +![](../../images/plugin/prometheus01.png) -![](../../doc/images/plugin/prometheus02.png) +![](../../images/plugin/prometheus02.png) ### Grafana 面板 @@ -89,11 +89,11 @@ scrape_configs: 你可以到 [Grafana meta](https://grafana.com/grafana/dashboards/11719) 下载 `Grafana` 元数据. -![](../../doc/images/plugin/grafana_1.png) +![](../../images/plugin/grafana_1.png) -![](../../doc/images/plugin/grafana_2.png) +![](../../images/plugin/grafana_2.png) -![](../../doc/images/plugin/grafana_3.png) +![](../../images/plugin/grafana_3.png) ### 可有的指标 diff --git a/doc/plugins/proxy-cache-cn.md b/doc/zh-cn/plugins/proxy-cache.md similarity index 99% rename from doc/plugins/proxy-cache-cn.md rename to doc/zh-cn/plugins/proxy-cache.md index 3a1337443581..9381ea883ae9 100644 --- a/doc/plugins/proxy-cache-cn.md +++ b/doc/zh-cn/plugins/proxy-cache.md @@ -17,7 +17,7 @@ # --> -[English](proxy-cache.md) +[English](../../plugins/proxy-cache.md) # proxy-cache diff --git a/doc/plugins/proxy-mirror-cn.md b/doc/zh-cn/plugins/proxy-mirror.md similarity index 98% rename from doc/plugins/proxy-mirror-cn.md rename to doc/zh-cn/plugins/proxy-mirror.md index 2d310d0b1396..e4c4d3d3b77b 100644 --- a/doc/plugins/proxy-mirror-cn.md +++ b/doc/zh-cn/plugins/proxy-mirror.md @@ -17,7 +17,7 @@ # --> -[English](proxy-mirror.md) +[English](../../plugins/proxy-mirror.md) # proxy-mirror diff --git a/doc/plugins/proxy-rewrite-cn.md b/doc/zh-cn/plugins/proxy-rewrite.md similarity index 98% rename from doc/plugins/proxy-rewrite-cn.md rename to doc/zh-cn/plugins/proxy-rewrite.md index f714ad5f4f5b..45a6c95040ea 100644 --- a/doc/plugins/proxy-rewrite-cn.md +++ b/doc/zh-cn/plugins/proxy-rewrite.md @@ -17,7 +17,7 @@ # --> -[English](proxy-rewrite.md) +[English](../../plugins/proxy-rewrite.md) # proxy-rewrite 上游代理信息重写插件。 diff --git a/doc/plugins/redirect-cn.md b/doc/zh-cn/plugins/redirect.md similarity index 98% rename from doc/plugins/redirect-cn.md rename to doc/zh-cn/plugins/redirect.md index b32b88cf9e05..ead153a44421 100644 --- a/doc/plugins/redirect-cn.md +++ b/doc/zh-cn/plugins/redirect.md @@ -17,7 +17,7 @@ # --> -[English](redirect.md) +[English](../../plugins/redirect.md) # redirect diff --git a/doc/plugins/response-rewrite-cn.md b/doc/zh-cn/plugins/response-rewrite.md similarity index 96% rename from doc/plugins/response-rewrite-cn.md rename to doc/zh-cn/plugins/response-rewrite.md index 275b5f252182..83c5aac51c96 100644 --- a/doc/plugins/response-rewrite-cn.md +++ b/doc/zh-cn/plugins/response-rewrite.md @@ -17,7 +17,7 @@ # --> -[English](response-rewrite.md) +[English](../../plugins/response-rewrite.md) # response-rewrite @@ -25,7 +25,7 @@ 使用场景: 1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS (跨域资源共享)的功能。 -2、另外也可以通过配置 status_code 和 header 里面的 Location 来实现重定向,当然如果只是需要重定向功能,最好使用 [redirect](redirect-cn.md) 插件。 +2、另外也可以通过配置 status_code 和 header 里面的 Location 来实现重定向,当然如果只是需要重定向功能,最好使用 [redirect](redirect.md) 插件。 ## 配置参数 diff --git a/doc/plugins/serverless-cn.md b/doc/zh-cn/plugins/serverless.md similarity index 98% rename from doc/plugins/serverless-cn.md rename to doc/zh-cn/plugins/serverless.md index fab9ad9e5a0b..7ef432662f00 100644 --- a/doc/plugins/serverless-cn.md +++ b/doc/zh-cn/plugins/serverless.md @@ -17,7 +17,7 @@ # --> -[English](serverless.md) +[English](../../plugins/serverless.md) # serverless diff --git a/doc/plugins/skywalking-cn.md b/doc/zh-cn/plugins/skywalking.md similarity index 95% rename from doc/plugins/skywalking-cn.md rename to doc/zh-cn/plugins/skywalking.md index f0f09c82dbb8..91ae3c1ebffb 100644 --- a/doc/plugins/skywalking-cn.md +++ b/doc/zh-cn/plugins/skywalking.md @@ -17,7 +17,7 @@ # --> -[English](skywalking.md) +[English](../../plugins/skywalking.md) # 目录 - [目录](#目录) @@ -70,11 +70,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f1 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 route: -![](../images/plugin/skywalking-1.png) +![](../../images/plugin/skywalking-1.png) 然后在 route 页面中添加 skywalking 插件: -![](../images/plugin/skywalking-2.png) +![](../../images/plugin/skywalking-2.png) ## 测试插件 @@ -108,7 +108,7 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f1 ``` 2. 打开管理页面 在浏览器里面输入http://10.110.149.175:8080,出现了如下界面,则表示安装成功 - ![](../images/plugin/skywalking-3.png) + ![](../../images/plugin/skywalking-3.png) 3. 测试示例: - 通过访问apisix,访问上游服务 @@ -124,9 +124,9 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f1 http://10.110.149.175:8080/ ``` 可以看到访问拓扑图\ - ![](../../doc/images/plugin/skywalking-4.png)\ + ![](../../images/plugin/skywalking-4.png)\ 可以看到服务追踪图\ - ![](../../doc/images/plugin/skywalking-5.png) + ![](../../images/plugin/skywalking-5.png) ## 禁用插件 当你想去掉插件的时候,很简单,在插件的配置中把对应的 json 配置删除即可,无须重启服务,即刻生效: diff --git a/doc/plugins/syslog-cn.md b/doc/zh-cn/plugins/syslog.md similarity index 100% rename from doc/plugins/syslog-cn.md rename to doc/zh-cn/plugins/syslog.md diff --git a/doc/plugins/tcp-logger-cn.md b/doc/zh-cn/plugins/tcp-logger.md similarity index 98% rename from doc/plugins/tcp-logger-cn.md rename to doc/zh-cn/plugins/tcp-logger.md index ba29772858ec..652f2afadabb 100644 --- a/doc/plugins/tcp-logger-cn.md +++ b/doc/zh-cn/plugins/tcp-logger.md @@ -34,7 +34,7 @@ 该插件提供了将Log Data作为批处理推送到外部TCP服务器的功能。如果您没有收到日志数据,请放心一些时间,它会在我们的批处理处理器中的计时器功能到期后自动发送日志。 有关Apache APISIX中Batch-Processor的更多信息,请参考。 -[Batch-Processor](../batch-processor-cn.md) +[Batch-Processor](../batch-processor.md) ## 属性列表 diff --git a/doc/plugins/udp-logger-cn.md b/doc/zh-cn/plugins/udp-logger.md similarity index 98% rename from doc/plugins/udp-logger-cn.md rename to doc/zh-cn/plugins/udp-logger.md index 9bdbc4f7d385..f129dc2f8b64 100644 --- a/doc/plugins/udp-logger-cn.md +++ b/doc/zh-cn/plugins/udp-logger.md @@ -34,7 +34,7 @@ 此插件提供了将批处理数据批量推送到外部UDP服务器的功能。如果您没有收到日志数据,请放心一些时间,它会在我们的批处理处理器中的计时器功能到期后自动发送日志 有关Apache APISIX中Batch-Processor的更多信息,请参考。 -[Batch-Processor](../batch-processor.md) +[Batch-Processor](../../batch-processor.md) ## 属性列表 diff --git a/doc/plugins/wolf-rbac-cn.md b/doc/zh-cn/plugins/wolf-rbac.md similarity index 98% rename from doc/plugins/wolf-rbac-cn.md rename to doc/zh-cn/plugins/wolf-rbac.md index 1b9996c91ecc..0ed3f5cd42fc 100644 --- a/doc/plugins/wolf-rbac-cn.md +++ b/doc/zh-cn/plugins/wolf-rbac.md @@ -17,7 +17,7 @@ # --> -[English](wolf-rbac.md) +[English](../../plugins/wolf-rbac.md) # 目录 @@ -70,10 +70,10 @@ curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f ``` 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 consumer: -![](../images/plugin/wolf-rbac-1.png) +![](../../images/plugin/wolf-rbac-1.png) 然后在 consumer 页面中添加 wolf-rbac 插件: -![](../images/plugin/wolf-rbac-2.png) +![](../../images/plugin/wolf-rbac-2.png) 注意: 上面填写的 `appid` 需要在wolf控制台中已经存在的. diff --git a/doc/plugins/zipkin-cn.md b/doc/zh-cn/plugins/zipkin.md similarity index 95% rename from doc/plugins/zipkin-cn.md rename to doc/zh-cn/plugins/zipkin.md index 857f798b903d..fb7fc096a34c 100644 --- a/doc/plugins/zipkin-cn.md +++ b/doc/zh-cn/plugins/zipkin.md @@ -17,7 +17,7 @@ # --> -[English](zipkin.md) +[English](../../plugins/zipkin.md) # 目录 - [**名字**](#名字) @@ -67,11 +67,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f1 你可以使用浏览器打开 dashboard:`http://127.0.0.1:9080/apisix/dashboard/`,通过 web 界面来完成上面的操作,先增加一个 route: -![](../images/plugin/zipkin-1.png) +![](../../images/plugin/zipkin-1.png) 然后在 route 页面中添加 zipkin 插件: -![](../images/plugin/zipkin-2.png) +![](../../images/plugin/zipkin-2.png) ## 测试插件 @@ -97,9 +97,9 @@ HTTP/1.1 200 OK http://127.0.0.1:9411/zipkin ``` -![](../../doc/images/plugin/zipkin-1.jpg) +![](../../images/plugin/zipkin-1.jpg) -![](../../doc/images/plugin/zipkin-2.jpg) +![](../../images/plugin/zipkin-2.jpg) ## 禁用插件 diff --git a/doc/profile-cn.md b/doc/zh-cn/profile.md similarity index 100% rename from doc/profile-cn.md rename to doc/zh-cn/profile.md diff --git a/doc/stand-alone-cn.md b/doc/zh-cn/stand-alone.md similarity index 99% rename from doc/stand-alone-cn.md rename to doc/zh-cn/stand-alone.md index 0da4b0912002..34127ce0c2de 100644 --- a/doc/stand-alone-cn.md +++ b/doc/zh-cn/stand-alone.md @@ -17,7 +17,7 @@ # --> -[English](stand-alone.md) +[English](../stand-alone.md) ## Stand-alone mode diff --git a/doc/stream-proxy-cn.md b/doc/zh-cn/stream-proxy.md similarity index 96% rename from doc/stream-proxy-cn.md rename to doc/zh-cn/stream-proxy.md index 0a413d73b3bf..afb9fd298826 100644 --- a/doc/stream-proxy-cn.md +++ b/doc/zh-cn/stream-proxy.md @@ -17,7 +17,7 @@ # --> -[English](stream-proxy.md) +[English](../stream-proxy.md) # Stream 代理 @@ -59,7 +59,7 @@ curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f03 ``` 例子中 APISIX 对客户端IP为 `127.0.0.1` 的请求代理转发到上游主机 `127.0.0.1:1995`。 -更多用例,请参照 [test case](../t/stream-node/sanity.t). +更多用例,请参照 [test case](../../t/stream-node/sanity.t). ## 更多限制选项 From 89e06e79980edb93d86146028f77c8bc76dbf146 Mon Sep 17 00:00:00 2001 From: sshniro Date: Wed, 17 Jun 2020 11:54:36 +0200 Subject: [PATCH 2/6] Adding repo name --- doc/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/index.html b/doc/index.html index e5769d65a719..a758a5da21cf 100644 --- a/doc/index.html +++ b/doc/index.html @@ -17,10 +17,10 @@ loadSidebar: true, loadNavbar: true, mergeNavbar: true, - maxLevel: 10, + maxLevel: 4, subMaxLevel: 2, name: '', - repo: 'https://github.com/sshniro/apisix-docsify', + repo: 'https://github.com/apache/incubator-apisix/', plugins: [ EditOnGithubPlugin.create("https://github.com/apache/incubator-apisix/tree/master/doc/", null, "Edit of Github") ] From 32b2746ad30716e20aa5186ff2f785537604c85b Mon Sep 17 00:00:00 2001 From: sshniro Date: Wed, 17 Jun 2020 12:04:14 +0200 Subject: [PATCH 3/6] Removing white spaces --- doc/_sidebar.md | 65 +++++++++++++++++++++---------------------- doc/zh-cn/_sidebar.md | 65 +++++++++++++++++++++---------------------- 2 files changed, 64 insertions(+), 66 deletions(-) diff --git a/doc/_sidebar.md b/doc/_sidebar.md index f78dcdc9c1a0..c049f01bbff2 100644 --- a/doc/_sidebar.md +++ b/doc/_sidebar.md @@ -1,58 +1,44 @@ - Getting started - + - [Introduction](README.md) - [Quick start](getting-started.md) - General - [Architecture](architecture-design.md) - + - [Benchmark](benchmark.md) - + - Installation - + - [How to build](how-to-build.md) - [Install Dependencies](install-dependencies.md) - - - [HTTPS](https.md) - + + - [HTTPS](https.md) + - [Router](router-radixtree.md) - + - Plugins - + - [Develop Plugins](plugin-develop.md) - [Hot Reload](plugins.md) - Proxy Modes - + - [GRPC Proxy](grpc-proxy.md) - - [Stream Proxy](stream-proxy.md) + - [Stream Proxy](stream-proxy.md) - Plugins - Authentication - + - [Key Auth](plugins/key-auth.md) - [Basic Auth](plugins/basic-auth.md) - [JWT Auth](plugins/jwt-auth.md) - [Opend ID Connect](plugins/oauth.md) - - - Loggers - - - [HTTP Logger](plugins/http-logger.md) - - [Kafka Logger](plugins/kafka-logger.md) - - [Syslog](plugins/syslog.md) - - [TCP Logger](plugins/tcp-logger.md) - - [UDP Logger](plugins/udp-logger.md) - - - Monitoring - - - [Prometheus](plugins/prometheus.md) - - [SKywalking](plugins/skywalking.md) - - [Zipkin](plugins/zipkin.md) - + - General - + - [Redirect](plugins/redirect.md) - [Serverless](plugins/serverless.md) - [Batch Request](plugins/batch-requests.md) @@ -61,15 +47,15 @@ - [Proxy Cache](plugins/proxy-cache.md) - [Proxy Mirror](plugins/proxy-mirror.md) - [Echo](plugins/echo.md) - + - Transformations - + - [Response Rewrite](plugins/response-rewrite.md) - [Proxy Rewrite](plugins/proxy-rewrite.md) - [GRPC Transcoding](plugins/grpc-transcode.md) - + - Security - + - [Consumer Restriction](plugins/consumer-restriction.md) - [Limit Connection](plugins/limit-conn.md) - [Limit Count](plugins/limit-count.md) @@ -79,7 +65,20 @@ - [Keycloak Authorization](plugins/authz-keycloak.md) - [RBAC Wolf](plugins/wolf-rbac.md) + - Monitoring + + - [Prometheus](plugins/prometheus.md) + - [SKywalking](plugins/skywalking.md) + - [Zipkin](plugins/zipkin.md) + + - Loggers + + - [HTTP Logger](plugins/http-logger.md) + - [Kafka Logger](plugins/kafka-logger.md) + - [Syslog](plugins/syslog.md) + - [TCP Logger](plugins/tcp-logger.md) + - [UDP Logger](plugins/udp-logger.md) - Admin API - - [Admin API](admin-api.md) + - [Admin API](admin-api.md) diff --git a/doc/zh-cn/_sidebar.md b/doc/zh-cn/_sidebar.md index 378e970fe0da..079a613aafa7 100644 --- a/doc/zh-cn/_sidebar.md +++ b/doc/zh-cn/_sidebar.md @@ -1,58 +1,44 @@ - Getting started - + - [Introduction](./zh-cn/README.md) - [Quick start](./zh-cn/getting-started.md) - General - [Architecture](./zh-cn/architecture-design.md) - + - [Benchmark](./zh-cn/benchmark.md) - + - Installation - + - [How to build](./zh-cn/how-to-build.md) - [Install Dependencies](./zh-cn/install-dependencies.md) - - - [HTTPS](./zh-cn/https.md) - + + - [HTTPS](./zh-cn/https.md) + - [Router](./zh-cn/router-radixtree.md) - + - Plugins - + - [Develop Plugins](./zh-cn/plugin-develop.md) - [Hot Reload](./zh-cn/plugins.md) - Proxy Modes - + - [GRPC Proxy](./zh-cn/grpc-proxy.md) - - [Stream Proxy](./zh-cn/stream-proxy.md) + - [Stream Proxy](./zh-cn/stream-proxy.md) - Plugins - Authentication - + - [Key Auth](./zh-cn/plugins/key-auth.md) - [Basic Auth](./zh-cn/plugins/basic-auth.md) - [JWT Auth](./zh-cn/plugins/jwt-auth.md) - [Opend ID Connect](./zh-cn/plugins/oauth.md) - - - Loggers - - - [HTTP Logger](./zh-cn/plugins/http-logger.md) - - [Kafka Logger](./zh-cn/plugins/kafka-logger.md) - - [Syslog](./zh-cn/plugins/syslog.md) - - [TCP Logger](./zh-cn/plugins/tcp-logger.md) - - [UDP Logger](./zh-cn/plugins/udp-logger.md) - - - Monitoring - - - [Prometheus](./zh-cn/plugins/prometheus.md) - - [SKywalking](./zh-cn/plugins/skywalking.md) - - [Zipkin](./zh-cn/plugins/zipkin.md) - + - General - + - [Redirect](./zh-cn/plugins/redirect.md) - [Serverless](./zh-cn/plugins/serverless.md) - [Batch Request](./zh-cn/plugins/batch-requests.md) @@ -61,15 +47,15 @@ - [Proxy Cache](./zh-cn/plugins/proxy-cache.md) - [Proxy Mirror](./zh-cn/plugins/proxy-mirror.md) - [Echo](./zh-cn/plugins/echo.md) - + - Transformations - + - [Response Rewrite](./zh-cn/plugins/response-rewrite.md) - [Proxy Rewrite](./zh-cn/plugins/proxy-rewrite.md) - [GRPC Transcoding](./zh-cn/plugins/grpc-transcode.md) - + - Security - + - [Consumer Restriction](./zh-cn/plugins/consumer-restriction.md) - [Limit Connection](./zh-cn/plugins/limit-conn.md) - [Limit Count](./zh-cn/plugins/limit-count.md) @@ -79,7 +65,20 @@ - [Keycloak Authorization](./zh-cn/plugins/authz-keycloak.md) - [RBAC Wolf](./zh-cn/plugins/wolf-rbac.md) + - Monitoring + + - [Prometheus](./zh-cn/plugins/prometheus.md) + - [SKywalking](./zh-cn/plugins/skywalking.md) + - [Zipkin](./zh-cn/plugins/zipkin.md) + + - Loggers + + - [HTTP Logger](./zh-cn/plugins/http-logger.md) + - [Kafka Logger](./zh-cn/plugins/kafka-logger.md) + - [Syslog](./zh-cn/plugins/syslog.md) + - [TCP Logger](./zh-cn/plugins/tcp-logger.md) + - [UDP Logger](./zh-cn/plugins/udp-logger.md) - Admin API - - [Admin API](./zh-cn/admin-api.md) + - [Admin API](./zh-cn/admin-api.md) From ab6a8c5018a9372300fa8e9374107d491054894d Mon Sep 17 00:00:00 2001 From: sshniro Date: Wed, 17 Jun 2020 12:26:09 +0200 Subject: [PATCH 4/6] Adding license header and apache favicon --- doc/_navbar.md | 19 +++++++++++++++++++ doc/_sidebar.md | 23 +++++++++++++++++++++-- doc/images/apache.png | Bin 0 -> 8491 bytes doc/index.html | 20 ++++++++++++++++++++ doc/zh-cn/_sidebar.md | 23 +++++++++++++++++++++-- 5 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 doc/images/apache.png diff --git a/doc/_navbar.md b/doc/_navbar.md index f92eba2c5bf2..1612e7d8a96e 100644 --- a/doc/_navbar.md +++ b/doc/_navbar.md @@ -1,3 +1,22 @@ + + - Translations - [:uk: English](/) - [:cn: 中文](/zh-cn/) diff --git a/doc/_sidebar.md b/doc/_sidebar.md index c049f01bbff2..6a9c1e551167 100644 --- a/doc/_sidebar.md +++ b/doc/_sidebar.md @@ -1,3 +1,22 @@ + + - Getting started - [Introduction](README.md) @@ -22,7 +41,7 @@ - [Develop Plugins](plugin-develop.md) - [Hot Reload](plugins.md) - + - Proxy Modes - [GRPC Proxy](grpc-proxy.md) @@ -66,7 +85,7 @@ - [RBAC Wolf](plugins/wolf-rbac.md) - Monitoring - + - [Prometheus](plugins/prometheus.md) - [SKywalking](plugins/skywalking.md) - [Zipkin](plugins/zipkin.md) diff --git a/doc/images/apache.png b/doc/images/apache.png new file mode 100644 index 0000000000000000000000000000000000000000..d0075db9e3691081e94babfcdc8a5f6bf8bacf8f GIT binary patch literal 8491 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 + Document + + - Getting started - [Introduction](./zh-cn/README.md) @@ -22,7 +41,7 @@ - [Develop Plugins](./zh-cn/plugin-develop.md) - [Hot Reload](./zh-cn/plugins.md) - + - Proxy Modes - [GRPC Proxy](./zh-cn/grpc-proxy.md) @@ -66,7 +85,7 @@ - [RBAC Wolf](./zh-cn/plugins/wolf-rbac.md) - Monitoring - + - [Prometheus](./zh-cn/plugins/prometheus.md) - [SKywalking](./zh-cn/plugins/skywalking.md) - [Zipkin](./zh-cn/plugins/zipkin.md) From e8a5b7b101a4afa194c024126a2d7a6ebc8cedfb Mon Sep 17 00:00:00 2001 From: sshniro Date: Wed, 17 Jun 2020 17:30:45 +0200 Subject: [PATCH 5/6] Fixing wrong paths --- doc/admin-api.md | 2 +- doc/zh-cn/README.md | 8 ++++---- doc/zh-cn/admin-api.md | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/admin-api.md b/doc/admin-api.md index a81c473e1a1e..981e3e63333b 100644 --- a/doc/admin-api.md +++ b/doc/admin-api.md @@ -62,7 +62,7 @@ |remote_addrs|False |Match Rules|The `remote_addr` in the form of a list indicates that multiple different IP addresses are allowed, and match any one of them.|{"127.0.0.1", "192.0.0.0/8", "::1"}| |methods |False |Match Rules|If empty or without this option, there are no `method` restrictions, and it can be a combination of one or more: `GET`,`POST`,`PUT`,`DELETE`,`PATCH`, `HEAD`,`OPTIONS`,`CONNECT`,`TRACE`.|{"GET", "POST"}| |priority |False |Match Rules|If different routes contain the same `uri`, determine which route is matched first based on the attribute` priority`. Larger value means higher priority. The default value is 0.|priority = 10| -|vars |False |Match Rules |A list of one or more `{var, operator, val}` elements, like this: `{{var, operator, val}, {var, operator, val}, ...}`. For example: `{"arg_name", "==", "json"}` means that the current request parameter `name` is `json`. The `var` here is consistent with the internal variable name of Nginx, so you can also use `request_uri`, `host`, etc. For the operator part, the currently supported operators are `==`, `~=`,`>`, `<`, and `~~`. For the `>` and `<` operators, the result is first converted to `number` and then compared. See a list of [supported operators](#available-operators) |{{"arg_name", "==", "json"}, {"arg_age", ">", 18}}| +|vars |False |Match Rules |A list of one or more `{var, operator, val}` elements, like this: `{{var, operator, val}, {var, operator, val}, ...}}`. For example: `{"arg_name", "==", "json"}` means that the current request parameter `name` is `json`. The `var` here is consistent with the internal variable name of Nginx, so you can also use `request_uri`, `host`, etc. For the operator part, the currently supported operators are `==`, `~=`,`>`, `<`, and `~~`. For the `>` and `<` operators, the result is first converted to `number` and then compared. See a list of [supported operators](#available-operators) |{{"arg_name", "==", "json"}, {"arg_age", ">", 18}}| |filter_func|False|Match Rules|User-defined filtering function. You can use it to achieve matching requirements for special scenarios. This function accepts an input parameter named `vars` by default, which you can use to get Nginx variables.|function(vars) return vars["arg_name"] == "json" end| |plugins |False |Plugin|See [Plugin](architecture-design.md#plugin) for more || |upstream |False |Upstream|Enabled Upstream configuration, see [Upstream](architecture-design.md#upstream) for more|| diff --git a/doc/zh-cn/README.md b/doc/zh-cn/README.md index d38537d6871c..9e1c1705a820 100644 --- a/doc/zh-cn/README.md +++ b/doc/zh-cn/README.md @@ -55,14 +55,14 @@ Reference document * [grpc-transcode](plugins/grpc-transcode.md):REST <--> gRPC 转码。 * [serverless](plugins/serverless.md):允许在 APISIX 中的不同阶段动态运行 Lua 代码。 * [ip-restriction](plugins/ip-restriction.md): IP 黑白名单。 -* [openid-connect](../plugins/oauth.md) +* [openid-connect](plugins/oauth.md) * [redirect](plugins/redirect.md): URI 重定向。 * [response-rewrite](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。 * [fault-injection](plugins/fault-injection.md):故障注入,可以返回指定的响应体、响应码和响应时间,从而提供了不同的失败场景下处理的能力,例如服务失败、服务过载、服务高延时等。 * [proxy-cache](plugins/proxy-cache.md):代理缓存插件提供缓存后端响应数据的能力。 * [proxy-mirror](plugins/proxy-mirror.md):代理镜像插件提供镜像客户端请求的能力。 -* [udp-logger](../plugins/udp-logger.md): 将请求记录到UDP服务器 -* [tcp-logger](../plugins/tcp-logger.md): 将请求记录到TCP服务器 +* [udp-logger](plugins/udp-logger.md): 将请求记录到UDP服务器 +* [tcp-logger](plugins/tcp-logger.md): 将请求记录到TCP服务器 * [kafka-logger](plugins/kafka-logger.md): 将请求记录到外部Kafka服务器。 -* [cors](plugins/cors.md): 为你的API启用CORS. +* [cors](plugins/cors.md): 为你的API启用 CORS * [batch-requests](plugins/batch-requests.md): 以 **http pipeline** 的方式在网关一次性发起多个 `http` 请求。 diff --git a/doc/zh-cn/admin-api.md b/doc/zh-cn/admin-api.md index 5500c101e2e5..e32882084c4e 100644 --- a/doc/zh-cn/admin-api.md +++ b/doc/zh-cn/admin-api.md @@ -67,7 +67,7 @@ |remote_addrs|可选 |匹配规则|列表形态的 `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"}| |priority |可选 |匹配规则|如果不同路由包含相同 `uri`,根据属性 `priority` 确定哪个 `route` 被优先匹配,值越大优先级越高,默认值为 0。|priority = 10| -|vars |可选 |匹配规则|由一个或多个`{var, operator, val}`元素组成的列表,类似这样:`{{var, operator, val}, {var, operator, val}, ...}`。例如:`{"arg_name", "==", "json"}`,表示当前请求参数 `name` 是 `json`。这里的 `var` 与 Nginx 内部自身变量命名是保持一致,所以也可以使用 `request_uri`、`host` 等;对于 `operator` 部分,目前已支持的运算符有 `==`、`~=`、`>`、`<` 和 `~~`。对于`>`和`<`两个运算符,会把结果先转换成 number 然后再做比较。查看支持的[运算符列表](#运算符列表)|{{"arg_name", "==", "json"}, {"arg_age", ">", 18}}| +|vars |可选 |匹配规则|由一个或多个`{var, operator, val}`元素组成的列表,类似这样:`{{var, operator, val}, {var, operator, val}, ...}}`。例如:`{"arg_name", "==", "json"}`,表示当前请求参数 `name` 是 `json`。这里的 `var` 与 Nginx 内部自身变量命名是保持一致,所以也可以使用 `request_uri`、`host` 等;对于 `operator` 部分,目前已支持的运算符有 `==`、`~=`、`>`、`<` 和 `~~`。对于`>`和`<`两个运算符,会把结果先转换成 number 然后再做比较。查看支持的[运算符列表](#运算符列表)|{{"arg_name", "==", "json"}, {"arg_age", ">", 18}}| |filter_func|可选|匹配规则|用户自定义的过滤函数。可以使用它来实现特殊场景的匹配要求实现。该函数默认接受一个名为 vars 的输入参数,可以用它来获取 Nginx 变量。|function(vars) return vars["arg_name"] == "json" end| 有两点需要特别注意: From 6176efb35ee1f3def279077f6b7854a34dcc8117 Mon Sep 17 00:00:00 2001 From: YuanSheng Wang Date: Thu, 18 Jun 2020 21:24:16 +0800 Subject: [PATCH 6/6] doc: use absolute address (make a try) --- doc/plugins/proxy-cache.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/plugins/proxy-cache.md b/doc/plugins/proxy-cache.md index 8993dd8c640e..61931a3d0ad8 100644 --- a/doc/plugins/proxy-cache.md +++ b/doc/plugins/proxy-cache.md @@ -17,7 +17,7 @@ # --> -[Chinese](../zh-cn/plugins/proxy-cache.md) +[Chinese](/doc/zh-cn/plugins/proxy-cache.md) # proxy-cache