插件全局规则
本文档将介绍 APISIX 中插件全局规则的基本概念以及为什么需要它们。
在文档末尾探索其他资源,以获取有关相关主题的更多信息。
概述
在 APISIX 中,全局规则(Plugin Global Rules)对象用于为传入请求配置插件,这些插件独立于绑定到路由、服务、消费者、消费者组或插件配置的插件。限流和可观测性插件通常会全局启用,以便在所有 API 上应用一致的行为。
在同一阶段内,全局插件先于局部插件运行。完整顺序为:全局 rewrite、局部 rewrite、全局 access、局部 access。因此,全局 access 处理程序不会先于局部 rewrite 处理程序运行。优先级仅用于排列同一阶段和作用域内的插件;提前返回响应会阻止后续处理程序运行。有关详细信息,请参阅插件执行顺序。
下图说明了一个为所有传入请求全局启用 key-auth 插件的示例。一旦请求通过身份认证,路由使用 proxy-rewrite 插件设置额外的请求头,这演示了插件执行顺序:
此配置确保只有经过身份认证的请求才允许与上游服务交互。如果向 APISIX 发送请求:
- 没有任何密钥或密钥错误,请求将被拒绝。
- 带有
global-key但请求不存在的路由,请求通过身份认证,但 APISIX 返回错误警告用户找不到路由。 - 带有
global-key请求现有路由,请求首先通过身份认证,然后请求头被路由上的插件修改,最后请求被转发到上游服务。
上面的示例在全局规则和路由中使用了两个不同的插件。如果同一个插件在两个对象中都配置了,则该插件的两个实例将按顺序执行,而不是相互覆盖。