基于 Cloudflare Workers 的反向代理示例,用于将 stripchat.com 及其关联资源通过单一入口进行转发与响应重写。
该 Worker 实现了一个“受控目标域名”的反向代理,主要目标是:
- 代理页面与静态资源请求。
- 处理跨域访问与预检请求(CORS)。
- 对文本响应中的域名与协议相关 URL 进行重写。
- 去除部分安全限制头,以提升代理场景下的兼容性。
- 处理 WebSocket 升级与常见重定向场景。
不在当前范围内的能力:
- 完整的生产级鉴权与访问控制。
- 高可靠审计日志与可观测性体系。
- 多环境配置(dev/stage/prod)与 CI/CD 工作流。
- 反向代理目标站点与关联域名资源。
- 自动处理 OPTIONS 预检请求。
- 自动跟随和二次处理部分 3xx 重定向。
- 支持 HTML/CSS/JS/JSON 文本内容重写。
- 支持图片、视频、字体等二进制流直通。
- 处理 WebSocket 升级请求并转发至上游。
- 调整 Set-Cookie 属性以提高代理环境可用性。
高层流程如下:
- 客户端请求进入 Cloudflare Worker。
- Worker 根据路径与请求头做分流:
- OPTIONS:直接返回 CORS 预检响应。
- /_csp 或 csp-report:返回 204。
- Upgrade: websocket:走 WebSocket 转发逻辑。
- 其他请求:进入 HTTP 代理链路。
- Worker 构建上游请求并发起 fetch。
- 对响应执行统一处理:
- 过滤部分安全响应头。
- 注入 CORS 响应头。
- 规范化 Set-Cookie。
- 对文本内容进行域名/协议重写。
- 将处理后的响应返回客户端。
.
├── LICENSE
├── README.md
├── README.en.md
└── worker.js
- 已注册 Cloudflare 账号。
- 可访问 Cloudflare Workers。
- (可选)已在 Cloudflare 托管的自定义域名。
- 登录 Cloudflare 控制台。
- 进入 Workers & Pages。
- 创建新的 Worker。
- 用仓库中的 worker.js 覆盖默认代码并保存。
- 点击 Deploy。
- 通过 *.workers.dev 或绑定域名访问。
npm install -g wrangler
wrangler login创建 wrangler.toml(示例):
name = "stripchat-mirror"
main = "worker.js"
compatibility_date = "2026-04-06"执行部署:
wrangler deploy本地调试(远端运行环境):
wrangler dev --remote主要配置位于 worker.js 顶部常量:
- TARGET_DOMAIN:目标主域。
- TARGET_URL:目标主 URL。
- PROXY_DOMAINS:需要在文本响应中重写的关联域名列表。
建议按以下原则维护 PROXY_DOMAINS:
- 将实际出现的资源域名、API 域名、WebSocket 域名全部纳入。
- 新增域名后做一次端到端回归(首页、静态资源、实时连接)。
- 避免过度泛化匹配,减少误重写风险。
- 在 Cloudflare 控制台开启 Worker 日志与告警。
- 根据流量规模配置速率限制,防止被滥用。
- 对静态资源引入缓存策略(可结合 Cache API 或平台规则)。
- 对公开实例增加访问控制(IP 白名单、Token 或上游网关)。
- 定期验证上游域名与脚本策略变化,避免代理逻辑过期。
| 现象 | 常见原因 | 排查建议 |
|---|---|---|
| 页面可打开但部分资源加载失败 | 资源域名未覆盖 | 检查网络面板失败域名并补充到 PROXY_DOMAINS |
| 实时功能异常 | WebSocket 目标未正确转发 | 检查 Upgrade 请求与目标 ws/wss 地址 |
| 登录态不稳定 | Cookie 属性与代理域不兼容 | 检查响应中的 Set-Cookie 重写结果 |
| 页面脚本报错 | 上游脚本策略变化或资源重写不完整 | 对比上游原始响应并补齐重写规则 |
| 访问出现 403/429 | 上游风控或请求特征触发限制 | 降低请求频率,检查请求头与来源策略 |
- 请确保使用场景符合当地法律法规与平台条款。
- 该项目默认不提供匿名性、隐私合规与审计能力。
- 不建议将开放代理直接暴露在公网。
- 若用于生产环境,请补充鉴权、限流、日志脱敏与监控体系。
欢迎通过 Issue 或 Pull Request 提交改进。
建议贡献流程:
- Fork 仓库并创建特性分支。
- 修改代码并完成本地验证。
- 提交清晰的变更说明与复现步骤。
- 发起 Pull Request。
推荐提交内容包含:
- 变更动机与影响范围。
- 关键逻辑说明。
- 兼容性与回滚方案(如适用)。
本项目基于 GNU 通用公共许可证 v3.0 发布。
本项目仅用于技术研究与学习交流。使用者需自行承担部署、运维与合规风险。