跳转到内容

Higress WASM 插件优先级与阶段配置参考手册

阶段说明典型用途
AUTHN插入在 Istio 认证过滤器之前身份验证(JWT、Basic Auth)
AUTHZ插入在 Istio 授权过滤器之前权限校验、IP 白名单、WAF
STATS插入在 Istio 统计过滤器之前日志记录、监控埋点、限流计数
UNSPECIFIED_PHASE默认值,插入在过滤器链末端响应改写、AI 代理、流量标记
  • 值越大越靠前:在相同阶段内,priority 值越大,插件在插件链中位置越靠前
  • 请求阶段先执行,响应阶段后执行
  • 推荐范围
    • 0-100:基础处理(JWT 默认 0,transformer 默认 100)
    • 200-400:认证授权(bot-detect 310,basic-auth 320,key-auth 321,waf 330,cors 340,oidc 350)
    • 400-600:AI 处理(ai-rag 400,ai-transformer 410,cache-control 420,ai-search 440,ai-prompt-decorator 450)
    • 600+:安全防护(ai-token-ratelimit 600,replay-protection 800)
插件优先级说明
jwt-auth0JWT 认证,默认最低优先级
ai-history10AI 对话历史缓存
basic-auth320HTTP Basic 认证
key-auth321API Key 认证
hmac-auth-apisix未指定HMAC 认证(APISIX 兼容)
bot-detect310机器人检测
geo-ip未指定地理 IP 路由
ai-intent1000AI 意图识别,最高优先级认证插件
apiVersion: extensions.higress.io/v1alpha1
kind: WasmPlugin
metadata:
name: basic-auth
spec:
phase: AUTHN
priority: 320
defaultConfig:
# basic-auth 配置
插件优先级说明
ip-restriction210IP 黑/白名单
waf330Web 应用防火墙(Coraza/OWASP CRS)
request-block未指定请求阻断(URL/Header/Body 模式匹配)
cors340跨域资源共享
opa未指定Open Policy Agent 集成
apiVersion: extensions.higress.io/v1alpha1
kind: WasmPlugin
metadata:
name: waf
spec:
phase: AUTHZ
priority: 330
defaultConfig:
# WAF 配置

四、AI 代理插件(UNSPECIFIED_PHASE)

Section titled “四、AI 代理插件(UNSPECIFIED_PHASE)”

AI 类插件大多工作在 UNSPECIFIED_PHASE 阶段,通过 priority 控制执行顺序。

插件优先级说明
ai-proxy100AI 代理网关,支持 OpenAI/Anthropic/Cohere/Gemini 等
ai-quota250/280/300AI 配额管理(Redis 后端)
ai-statistics250AI 使用统计
ai-token-ratelimit100/600Token 限流(全局 100,规则 600)
插件优先级说明
ai-history10对话历史缓存(Redis)
ai-cache未指定AI 语义缓存(向量数据库)
ai-rag400检索增强生成
ai-search440AI 搜索与引用注入
ai-transformer410HTTP 协议转换
ai-prompt-template未指定Prompt 模板
ai-prompt-decorator450Prompt 装饰(前置/后置消息)
ai-json-resp150JSON 响应验证与优化
ai-intent1000意图识别
ai-agent200AI Agent(ReAct 模式)
ai-image-reader未指定AI 图片 OCR
ai-security-guard未指定AI 内容安全审核
ai-proxy (100)
ai-json-resp (150)
ai-history (10) ──────────────────→ ai-quota (250)
↓ ↓
ai-agent (200) ai-statistics (250)
ai-intent (1000)
ai-rag (400)
ai-transformer (410)
ai-search (440)
ai-prompt-decorator (450)
ai-token-ratelimit (600)
插件优先级阶段说明
cluster-key-rate-limit20未指定集群 Key 限流(Redis)
ip-restriction210AUTHZIP 限制
ai-token-ratelimit100/600未指定Token 限流
replay-protection800未指定重放攻击防护(Nonce)
插件优先级阶段说明
bot-detect310AUTHN机器人检测
waf330AUTHZWAF(Coraza)
ai-security-guard未指定未指定AI 内容安全
hmac-auth-apisix未指定AUTHNHMAC 认证
插件优先级阶段说明
transformer100UNSPECIFIED请求/响应转换(Header/Query/Body)
de-graphql未指定未指定GraphQL 转 REST
jsonrpc-converter未指定未指定JSON-RPC 转换(MCP 协议)
插件优先级阶段说明
traffic-tag400默认流量标记(权重/内容)
frontend-gray未指定未指定前端灰度/AB 测试
geo-ip未指定AUTHN地理 IP路由
插件优先级说明
cache-control420Cache-Control 头处理
custom-response未指定自定义响应(Mock)
ai-cache未指定AI 语义缓存
插件优先级阶段说明
log-request-response未指定未指定请求/响应日志
ai-statistics250UNSPECIFIEDAI 使用统计
ai-quota250/280/300UNSPECIFIED配额统计
插件优先级说明
ext-auth未指定外部认证服务(Envoy forward_auth 风格)
http-call未指定外部 HTTP 调用
opa未指定Open Policy Agent
api-workflow未指定API 工作流编排
优先级插件阶段
0jwt-authUNSPECIFIED
10ai-historyAUTHN
20cluster-key-rate-limit-
100ai-proxy, transformerUNSPECIFIED
150ai-json-resp-
200ai-agent-
210ip-restrictionAUTHZ
250ai-quota, ai-statisticsUNSPECIFIED
280ai-quota-
300ai-quota-
310bot-detectAUTHN
320basic-authAUTHN
321key-authAUTHN
330wafAUTHZ
340cors-
350oidcAUTHN
400traffic-tag, ai-rag默认/UNSPECIFIED
410ai-transformer-
420cache-control-
440ai-search-
450ai-prompt-decorator-
600ai-token-ratelimit-
800replay-protection-
1000ai-intentAUTHN

AUTHN 阶段

ai-history (10) → bot-detect (310) → basic-auth (320) → key-auth (321) → oidc (350) → ai-intent (1000)

AUTHZ 阶段

ip-restriction (210) → waf (330)

UNSPECIFIED_PHASE / 默认阶段

jwt-auth (0) → ai-proxy (100) → transformer (100) → ai-json-resp (150) → ai-agent (200)
→ ai-quota (250) → ai-statistics (250) → traffic-tag (400) → ai-rag (400)
→ ai-transformer (410) → cache-control (420) → ai-search (440) → ai-prompt-decorator (450)
→ ai-token-ratelimit (600) → replay-protection (800)
需求推荐阶段原因
身份验证AUTHN在业务逻辑之前完成
权限检查AUTHZ认证之后、统计之前
限流计数STATS业务处理后统计
响应改写UNSPECIFIED可访问完整响应
AI 处理UNSPECIFIED大多数 AI 插件默认

当多个插件需要处理同一请求时:

  1. 相同阶段:按优先级降序执行(值大先执行)
  2. 不同阶段:按 AUTHN → AUTHZ → STATS → UNSPECIFIED 顺序执行
  3. 响应阶段:执行顺序相反(UNSPECIFIED 先执行,AUTHN 后执行)

AI 插件通常需要按以下顺序串联:

# 1. AI 代理(入口)
spec:
phase: UNSPECIFIED_PHASE
priority: 100
---
# 2. 请求处理(JSON 验证、意图识别、RAG)
spec:
phase: UNSPECIFIED_PHASE
priority: 150-400
---
# 3. 限流与配额
spec:
phase: UNSPECIFIED_PHASE
priority: 600

更多插件开发信息,请参考 Higress 官方 Wasm 插件文档