跳到主要内容

插件全局规则

本文档将介绍 APISIX 中插件全局规则的基本概念以及为什么需要它们。

在文档末尾探索其他资源,以获取有关相关主题的更多信息。

概述

在 APISIX 中,全局规则(Plugin Global Rules)对象用于为传入请求配置插件,这些插件独立于绑定到路由服务消费者消费者组插件配置的插件。限流和可观测性插件通常会全局启用,以便在所有 API 上应用一致的行为。

在同一阶段内,全局插件先于局部插件运行。完整顺序为:全局 rewrite、局部 rewrite、全局 access、局部 access。因此,全局 access 处理程序不会先于局部 rewrite 处理程序运行。优先级仅用于排列同一阶段和作用域内的插件;提前返回响应会阻止后续处理程序运行。有关详细信息,请参阅插件执行顺序

下图说明了一个为所有传入请求全局启用 key-auth 插件的示例。一旦请求通过身份认证,路由使用 proxy-rewrite 插件设置额外的请求头,这演示了插件执行顺序

key-auth 全局规则图解

此配置确保只有经过身份认证的请求才允许与上游服务交互。如果向 APISIX 发送请求:

  • 没有任何密钥或密钥错误,请求将被拒绝。
  • 带有 global-key 但请求不存在的路由,请求通过身份认证,但 APISIX 返回错误警告用户找不到路由。
  • 带有 global-key 请求现有路由,请求首先通过身份认证,然后请求头被路由上的插件修改,最后请求被转发到上游服务。

上面的示例在全局规则和路由中使用了两个不同的插件。如果同一个插件在两个对象中都配置了,则该插件的两个实例将按顺序执行,而不是相互覆盖。

其他资源