基于 Cloudflare Workers 的私有网络 (VPC) 动态站点代理服务。通过 Cloudflare KV 实现无需重新部署代码即可动态管理多个站点和后端路由。
- 动态路由:基于域名 (Hostname) 动态匹配后端服务器。
- KV 存储:配置存储于 Workers KV,读取性能极高且支持即时更新。
- VPC 集成:通过 Cloudflare VPC Service 访问内网资源。
- 无状态部署:代码逻辑与业务配置分离。
在 Cloudflare 控制台或通过命令行创建一个 KV 命名空间,并将其 ID 填入 wrangler.jsonc 的 kv_namespaces 部分。
npx wrangler kv namespace create VPCSERVICE本项目使用 KV 存储站点映射关系。Key 的格式为 site:your-domain.com,Value 为 JSON 字符串。
配置项说明:
host: 目标内网服务器的 IP 或 Hostname。port: 目标端口。vpc:wrangler.jsonc中定义的 VPC Service 绑定名称(如VPC_SERVICE_OS_2)。
无需重新部署代码,只需更新 KV 数据:
# 使用命令行更新(推荐)
npx wrangler kv key put --binding=VPCSERVICE "site:api.example.com" '{"host": "10.0.1.5", "port": "8080", "vpc": "VPC_SERVICE_OS_2"}'确保 wrangler.jsonc 中的 account_id 和 KV id 已正确配置。
npm run deploysrc/index.ts: 核心代理逻辑。wrangler.jsonc: Cloudflare Workers 配置文件,包含 VPC 和 KV 绑定。test/: 集成测试用例。
- 404 Not Found: 表示 KV 中没有找到对应域名的配置。请检查 KV 中的 Key 是否以
site:开头且域名拼写正确。 - 500 Internal Server Error: 通常是指定的 VPC 绑定名称在
wrangler.jsonc中不存在。