基于 EdgeOne Pages 中间件的 rewrite 实现 CDN 级反向代理,支持 WebSocket 长连接 + 流媒体 + 大文件。
| 特性 | Cloud Function fetch | 中间件 rewrite(本项目) |
|---|---|---|
| WebSocket | 不支持 | CDN 层透传 |
| 流媒体 | 有限 | 完整支持 |
| 执行时长 | 120s 超时 | 无限制(CDN 回源) |
| 延迟 | 云端服务器中转 | 边缘节点直回源 |
| 大文件 | 受 body 限制 | 无限制 |
原理:中间件 rewrite 到绝对路径 URL 后,请求走 EdgeOne CDN 的回源通道,由边缘节点直接向目标发起请求并透传响应,不是应用层 fetch,天然支持 WebSocket 和流式传输。
- Fork 或克隆本仓库
- 登录 EdgeOne Pages 控制台
- 导入该 Git 仓库
- 修改
middleware.js中的PROXY_TARGETS数组,填入你的节点域名 - 平台自动构建部署
编辑 middleware.js:
// 目标域名列表(随机负载均衡)
const PROXY_TARGETS = [
'node1.example.com',
'node2.example.com',
];├── middleware.js # 中间件 - rewrite 到目标域名,CDN 层透传
├── edgeone.json # 部署地域配置
├── package.json
└── README.md
npm install -g edgeone
edgeone pages dev