xfy 6543422281 docs: 添加 Nginx 配置和 Lua 脚本示例文档
- config: 反向代理、缓存、负载均衡、安全、SSL 等配置模板
- lua: API 网关、认证、动态路由、限流、WebSocket 等脚本示例

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:59:22 +08:00

46 lines
1.3 KiB
Markdown

# 动态路由示例
基于路径和请求头的动态路由分发示例,展示如何使用 Lua 实现灵活的
后端服务选择。
## 功能说明
- **基于路径路由**: 根据请求 URI 前缀分发到不同后端
- **基于请求头路由**: 通过 `X-Service``X-Version` 头选择目标服务
- **灰度发布支持**: 通过 `X-Canary` 头引导流量到灰度后端
- **默认回退**: 未匹配任何规则时使用默认上游
## 文件说明
| 文件 | 说明 |
|------|------|
| `nginx.conf` | Nginx 配置示例,展示路由集成方式 |
| `router.lua` | 动态路由核心逻辑 |
## 路由规则
### 路径路由优先级
1. `/api/v2/*` -> API v2 服务集群
2. `/api/*` -> API 默认服务集群
3. `/static/*` -> 静态资源服务器
4. `/ws/*` -> WebSocket 服务
5. `/*` -> 默认 Web 服务
### 请求头覆盖
- `X-Service: <name>` 直接指定目标服务名称
- `X-Version: <ver>` 指定服务版本(配合服务名使用)
- `X-Canary: true` 引导到灰度实例
## 使用方式
1.`router.lua` 放置于 Lua 模块搜索路径
2.`nginx.conf` 中引入配置
3. 根据实际需求修改路由规则和上游地址
## Lolly 对应
Lolly 内置 Lua 沙箱支持,可通过 `lua_scripts` 配置嵌入自定义路由逻辑。
相关文档: `docs/lua-nginx-module/08-balancer.md`