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