1. 路由匹配规则

  • URI/*

    • 匹配所有路径(通配符)。
  • Hosttest-ai-application.dossen.com

    • 仅处理该域名的请求。
  • Vars: 条件匹配 server_port

    json

    ["server_port", "~~", "\\b(80|443)\\b"]
    
    • 限制端口为 80(HTTP)或 443(HTTPS)。
    • ~~ 表示正则匹配,\b 是单词边界符。

2. 插件配置

启用 cors 插件以支持跨域 WebSocket:

json

"plugins": {
  "cors": {
    "allow_credential": true,
    "allow_headers": "**",
    "allow_methods": "**",
    "allow_origins": "**",
    "expose_headers": "**",
    "max_age": 5
  }
}
  • 允许所有来源/头/方法:适合测试环境,生产环境建议按需限制。
  • 预检缓存时间max_age=5 秒。

3. 后端服务配置

json

"upstream": {
  "nodes": [{
    "host": "10.30.97.248",
    "port": 18080,
    "weight": 1
  }],
  "type": "roundrobin",
  "scheme": "http",
  "timeout": {
    "connect": 6000,
    "send": 6000,
    "read": 6000
  },
  "keepalive_pool": {
    "idle_timeout": 60,
    "requests": 1000,
    "size": 320
  }
}
  • 后端节点:单节点 10.30.97.248:18080,权重为 1。
  • 负载均衡:轮询策略(roundrobin)。
  • 超时设置:连接、发送、读取均为 6 秒。
  • 连接池:提高长连接性能,支持 WebSocket 长会话。

4. WebSocket 支持

json

"enable_websocket": true
  • 显式启用 WebSocket 协议支持。
  • APISIX 默认不开启 WebSocket,需手动配置。

image.png
image.png