juzhiyuan commented on code in PR #6736: URL: https://github.com/apache/apisix/pull/6736#discussion_r859752959
########## docs/zh/latest/FAQ.md: ########## @@ -209,32 +233,28 @@ Server: APISIX web server </html> ``` -## 如何修改日志等级 - -默认的 APISIX 日志等级为 `warn`,如果需要查看 `core.log.info` 的打印结果需要将日志等级调整为 `info`。 +## 我应该如何更改 Apache APISIX 的日志等级? -具体步骤: +Apache APISIX 默认的日志等级为 `warn`,你需要将日志等级调整为 `info` 来查看 `core.log.info` 的打印结果。 -1、修改 conf/config.yaml 中的 `nginx_config` 配置参数 `error_log_level: "warn"` 为 `error_log_level: "info"`。 +你需要将 `./conf/config.yaml` 中的 `nginx_config` 配置参数 `error_log_level: "warn"` 修改为 `error_log_level: "info"`,然后重新加载 Apache APISIX 使其生效。 ```yaml nginx_config: error_log_level: "info" ``` -2、重启或 reload APISIX +## 我应该如何重新加载 Apache APISIX 的自定义插件? -之后便可以在 logs/error.log 中查看到 info 的日志了。 +所有的 Apache APISIX 的插件都支持热加载的方式。 -## 如何加载自己编写的插件 +如果你想了解更多关于热加载的内容,请参考[热加载](https://apisix.apache.org/docs/apisix/next/terminology/plugin#hot-reload-in-stand-alone-mode)。 Review Comment: Could we use relative path here? ########## docs/zh/latest/FAQ.md: ########## @@ -534,35 +558,38 @@ HTTP/1.1 200 OK } ``` -## 如何解决 `unable to get local issuer certificate` 错误 +## 我应该如何解决 `unable to get local issuer certificate` 这个错误? -修改 `conf/config.yaml` +你可以手动设置证书的路径,将其添加到 `./conf/config.yaml` 文件中,具体操作如下所示: ```yaml -# ... 忽略其余无关项 apisix: ssl: ssl_trusted_certificate: /path/to/certs/ca-certificates.crt -# ... 忽略其余无关项 ``` -**注意:** +**注意:**当你尝试使用 cosocket 连接任何 TLS 服务时,如果 APISIX 不信任对端 TLS 服务证书,都需要配置 `apisix.ssl.ssl_trusted_certificate`。 -尝试使用 cosocket 连接任何 TLS 服务时,如果 APISIX 不信任对端 TLS 服务证书,都需要配置 `apisix.ssl.ssl_trusted_certificate`。 +例如:如果在 APISIX 中使用 Nacos 作为服务发现时,Nacos 开启了 TLS 协议,即 Nacos 配置的 `host` 是 `https://` 开头,就需要配置 `apisix.ssl.ssl_trusted_certificate`,并且使用和 Nacos 相同的 CA 证书。 -举例:在 APISIX 中使用 Nacos 作为服务发现时,Nacos 开启了 TLS 协议, 即 Nacos 配置的 `host` 是 `https://` 开头,需要配置 `apisix.ssl.ssl_trusted_certificate`,并且使用和 Nacos 相同的 CA 证书。 +## 我应该如何解决 `module 'resty.worker.events' not found` 这个错误? -## 如何解决 `module 'resty.worker.events' not found` 错误 +引起这个错误的原因是在 `/root` 目录下安装了 APISIX。因为 worker 进程的用户是 nobody,无权访问 `/root` 目录下的文件。 -在 `/root` 目录下安装 APISIX 会导致这个问题。因为 worker 进程的用户是 nobody,无权访问 `/root` 目录下的文件。需要移动 APISIX 安装目录,推荐安装在 `/usr/local` 目录下。 +解决办法是改变 APISIX 的安装目录,推荐安装在 `/usr/local` 目录下。 -## `plugin-metadata` 和 `plugin-configs` 有什么区别 +## 在Apache APISIX中,`plugin-metadata` 和 `plugin-configs` 有什么区别? -`plugin-metadata` 是插件的元数据,由插件的所有配置实例共享。在编写插件时,如果有一些属性变化需要对该插件的所有配置实例生效,那么放在 `plugin-metadata` 合适。 +两者之间的差异如下: -`plugin-configs` 是指多个不同插件的配置实例的组合,如果你想要复用一组通用的插件配置实例,你可以把它们提取成一个 Plugin Config,并绑定到对应的路由上。 +| `plugin-metadata` | `plugin-config` | +| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| 当更改该 Plugin 属性后,需要应用到配置该插件的所有路由上时使用。 | 当你需要复用一组通用的插件配置时使用,可以把 Plugin 配置提取到一个 `plugin-config` 并绑定到不同的路由。 | +| 对绑定到 Plugin 的配置实例的所有实体生效。 | 对绑定到 `plugin-config` 的路由生效。 | +| 对绑定到 Plugin 的配置实例的所有实体生效。 | 对绑定到 `plugin-config` 的路由生效。 | -`plugin-metadata` 和 `plugin-configs` 的区别在于: +## 如果在使用 APISIX 过程中遇到问题,我可以在哪里寻求更多帮助? - - 插件实例作用范围:`plugin-metadata` 作用于该插件的所有配置实例。`plugin-configs` 作用于其下配置的插件配置实例。 - - 绑定主体作用范围:`plugin-metadata` 作用于该插件的所有配置实例绑定的主体。`plugin-configs` 作用于绑定了该 `plugin-configs` 的路由。 +- [Apache APISIX Slack Channel](/docs/general/community#joining-the-slack-channel):加入后请选择 channel-apisix 频道,即可通过此频道进行 APISIX 相关问题的提问。 +- [Ask questions on APISIX mailing list](/docs/general/community#joining-the-mailing-list):任何问题或对项目提议都可以通过社区邮件进行讨论。 Review Comment: ```suggestion - [邮件列表](/docs/general/community#joining-the-mailing-list):任何问题或对项目提议都可以通过社区邮件进行讨论。 ``` ########## docs/zh/latest/FAQ.md: ########## @@ -534,35 +558,38 @@ HTTP/1.1 200 OK } ``` -## 如何解决 `unable to get local issuer certificate` 错误 +## 我应该如何解决 `unable to get local issuer certificate` 这个错误? -修改 `conf/config.yaml` +你可以手动设置证书的路径,将其添加到 `./conf/config.yaml` 文件中,具体操作如下所示: ```yaml -# ... 忽略其余无关项 apisix: ssl: ssl_trusted_certificate: /path/to/certs/ca-certificates.crt -# ... 忽略其余无关项 ``` -**注意:** +**注意:**当你尝试使用 cosocket 连接任何 TLS 服务时,如果 APISIX 不信任对端 TLS 服务证书,都需要配置 `apisix.ssl.ssl_trusted_certificate`。 -尝试使用 cosocket 连接任何 TLS 服务时,如果 APISIX 不信任对端 TLS 服务证书,都需要配置 `apisix.ssl.ssl_trusted_certificate`。 +例如:如果在 APISIX 中使用 Nacos 作为服务发现时,Nacos 开启了 TLS 协议,即 Nacos 配置的 `host` 是 `https://` 开头,就需要配置 `apisix.ssl.ssl_trusted_certificate`,并且使用和 Nacos 相同的 CA 证书。 -举例:在 APISIX 中使用 Nacos 作为服务发现时,Nacos 开启了 TLS 协议, 即 Nacos 配置的 `host` 是 `https://` 开头,需要配置 `apisix.ssl.ssl_trusted_certificate`,并且使用和 Nacos 相同的 CA 证书。 +## 我应该如何解决 `module 'resty.worker.events' not found` 这个错误? -## 如何解决 `module 'resty.worker.events' not found` 错误 +引起这个错误的原因是在 `/root` 目录下安装了 APISIX。因为 worker 进程的用户是 nobody,无权访问 `/root` 目录下的文件。 -在 `/root` 目录下安装 APISIX 会导致这个问题。因为 worker 进程的用户是 nobody,无权访问 `/root` 目录下的文件。需要移动 APISIX 安装目录,推荐安装在 `/usr/local` 目录下。 +解决办法是改变 APISIX 的安装目录,推荐安装在 `/usr/local` 目录下。 -## `plugin-metadata` 和 `plugin-configs` 有什么区别 +## 在Apache APISIX中,`plugin-metadata` 和 `plugin-configs` 有什么区别? -`plugin-metadata` 是插件的元数据,由插件的所有配置实例共享。在编写插件时,如果有一些属性变化需要对该插件的所有配置实例生效,那么放在 `plugin-metadata` 合适。 +两者之间的差异如下: -`plugin-configs` 是指多个不同插件的配置实例的组合,如果你想要复用一组通用的插件配置实例,你可以把它们提取成一个 Plugin Config,并绑定到对应的路由上。 +| `plugin-metadata` | `plugin-config` | +| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| 当更改该 Plugin 属性后,需要应用到配置该插件的所有路由上时使用。 | 当你需要复用一组通用的插件配置时使用,可以把 Plugin 配置提取到一个 `plugin-config` 并绑定到不同的路由。 | +| 对绑定到 Plugin 的配置实例的所有实体生效。 | 对绑定到 `plugin-config` 的路由生效。 | +| 对绑定到 Plugin 的配置实例的所有实体生效。 | 对绑定到 `plugin-config` 的路由生效。 | -`plugin-metadata` 和 `plugin-configs` 的区别在于: +## 如果在使用 APISIX 过程中遇到问题,我可以在哪里寻求更多帮助? - - 插件实例作用范围:`plugin-metadata` 作用于该插件的所有配置实例。`plugin-configs` 作用于其下配置的插件配置实例。 - - 绑定主体作用范围:`plugin-metadata` 作用于该插件的所有配置实例绑定的主体。`plugin-configs` 作用于绑定了该 `plugin-configs` 的路由。 +- [Apache APISIX Slack Channel](/docs/general/community#joining-the-slack-channel):加入后请选择 channel-apisix 频道,即可通过此频道进行 APISIX 相关问题的提问。 +- [Ask questions on APISIX mailing list](/docs/general/community#joining-the-mailing-list):任何问题或对项目提议都可以通过社区邮件进行讨论。 +- [GitHub Issues](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) and [GitHub Discussions](https://github.com/apache/apisix/discussions):也可直接在 GitHub 中进行相关 issue 创建进行问题的表述。 Review Comment: ```suggestion - [GitHub Issues](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) 与 [GitHub Discussions](https://github.com/apache/apisix/discussions):也可直接在 GitHub 中进行相关 issue 创建进行问题的表述。 ``` ########## docs/zh/latest/FAQ.md: ########## @@ -21,73 +21,100 @@ title: 常见问题 # --> -## 为什么要做 API 网关?不是已经有其他的开源网关了吗? +## 为什么我们需要一个新的 API 网关?不是已经有其他的开源网关了吗? -微服务领域对 API 网关有新的需求:更高的灵活性、更高的性能要求,以及云原生的贴合。 +随着企业向云本地微服务的发展,企业对高性能、灵活、安全、可扩展的 API 网关的需求越来越大。 + +APISIX 在这些指标表现上优于其它 API 网关,同时具有平台无关性和完全动态的特性,如支持多种协议、细粒度路由和多语言支持。 ## APISIX 和其他的 API 网关有什么不同之处? -APISIX 基于 etcd 来完成配置的保存和同步,而不是 PostgreSQL 或者 MySQL 这类关系型数据库。 -这样不仅去掉了轮询,让代码更加的简洁,配置同步也更加实时。同时系统也不会存在单点,可用性更高。 +Apache APISIX 在以下方面有所不同: + +— 它使用 etcd 来保存和同步配置,而不是使用如 PostgreSQL 或 MySQL 这类的关系数据库。etcd 中的实时事件通知系统比这些替代方案更容易扩展。这允许 APISIX 实时同步配置,使代码简洁,并避免单点故障。 + +- 完全动态 +- 支持[热加载插件](/docs/apisix/terminology/plugin#热加载)。 + +## APISIX 所展现出的性能如何? + +与其它 API 网关相比,Apache APISIX 提供了更好的性能,其单核 QPS 高达 18,000,平均延迟仅为 0.2 ms。 -另外,APISIX 具备动态路由和插件热加载,特别适合微服务体系下的 API 管理。 +如果您想获取性能基准测试的具体结果,请查看 [benchmark](benchmark.md)。 -## APISIX 的性能怎么样? +## Apache APISIX 支持哪些平台? -APISIX 设计和开发的目标之一,就是业界最高的性能。具体测试数据见这里:[benchmark](benchmark.md) +Apache APISIX 是一个开源的云原生 API 网关,它支持在裸金属服务器上运行,也支持在 Kubernetes 上使用,甚至也可以运行在 Apple Silicon ARM 芯片上。 -APISIX 是当前性能最好的 API 网关,单核 QPS 达到 2.3 万,平均延时仅有 0.6 毫秒。 +## 如何理解“Apache APISIX 是全动态的”? + +Apache APISIX 是全动态的 API 网关,意味着当你在更改一个配置后,只需要重新加载配置文件就可以使其生效。 + +APISIX 可以动态处理以下行为: + +- 重新加载插件 +- 代理重写 +- 对请求进⾏镜像复制 +- 对请求进⾏修改 +- 健康状态的检查 +- 动态控制指向不同上游服务的流量⽐ ## APISIX 是否有控制台界面? -是的,APISIX 具有功能强大的 Dashboard。APISIX 与 [APISIX Dashboard](https://github.com/apache/apisix-dashboard) 是相互独立的项目,你可以部署 [APISIX Dashboard](https://github.com/apache/apisix-dashboard) 通过 web 界面来操作 APISIX。 +APISIX 具有功能强大的 Dashboard,并且 [APISIX Dashboard](https://github.com/apache/apisix-dashboard) 是一个独立的项目。你可以通过 [APISIX Dashboard](https://github.com/apache/apisix-dashboard) 用户操作界面来部署 APISIX Dashboard。 -## 我可以自己写插件吗? +## 我可以为 Apache APISIX 开发适合自身业务的插件吗? 当然可以,APISIX 提供了灵活的自定义插件,方便开发者和企业编写自己的逻辑。 -具体可参考:[如何开发插件](plugin-develop.md) +如果你想开发符合自身业务逻辑的插件,请参考:[如何开发插件](plugin-develop.md)。 -## 我们为什么选择 etcd 作为配置中心? +## 为什么 Apache APISIX 选择 etcd 作为配置中心? 对于配置中心,配置存储只是最基本功能,APISIX 还需要下面几个特性: -1. 集群支持 -2. 事务 -3. 历史版本管理 -4. 变化通知 -5. 高性能 +1. 集群中的分布式部署 +2. 通过比较来监视业务 +3. 多版本并发控制 +4. 通知和观看流 Review Comment: "观看流"? ########## docs/zh/latest/FAQ.md: ########## @@ -21,73 +21,100 @@ title: 常见问题 # --> -## 为什么要做 API 网关?不是已经有其他的开源网关了吗? +## 为什么我们需要一个新的 API 网关?不是已经有其他的开源网关了吗? Review Comment: ```suggestion ## 为什么需要一个新的 API 网关?不是已经有其他的开源网关了吗? ``` -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
