Cloudflare 部署 GitHub MoonTV 全流程:免费追剧重点环节解析

准备工作

确保已注册 Cloudflare 账号并拥有域名(支持免费子域名)。GitHub 账号需提前准备,用于托管 MoonTV 项目文件。

域名解析配置

在 Cloudflare 控制面板添加域名,按提示修改 DNS 服务器为 Cloudflare 提供的地址。完成验证后,进入 DNS 设置页面,添加 A 记录指向 GitHub Pages 的 IP 地址(如 185.199.108.153),或使用 CNAME 记录指向 username.github.io

GitHub 仓库设置

创建新仓库并上传 MoonTV 前端代码(HTML/CSS/JS 等静态文件)。进入仓库 Settings > Pages,选择分支作为源,启用 GitHub Pages。自定义域名处填写 Cloudflare 配置的域名,并勾选 "Enforce HTTPS"。

Cloudflare 安全加速

在 Cloudflare 的 SSL/TLS 设置中,选择 "Full" 加密模式。开启 Always Use HTTPS 和 Automatic HTTPS Rewrites。防火墙规则中可针对地区或IP限制访问,提升安全性。

缓存优化

于 Cloudflare 的 Caching 配置中,设置静态资源(如图片、JS/CSS)的缓存时间(如 1 个月)。启用 Brotli 压缩降低流量消耗。自定义缓存规则可绕过动态内容,确保数据实时性。

反爬策略

配置防火墙规则,屏蔽常见爬虫 User-Agent 或高频访问 IP。Rate Limiting 功能可限制单 IP 请求频率(如 100 次/分钟)。Worker 脚本可用于动态验证访问权限。

示例代码(Worker 基础验证)

javascript 复制代码
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const validToken = 'YOUR_SECRET_TOKEN'
  const url = new URL(request.url)
  
  // 检查路径或参数
  if (url.pathname.startsWith('/api/') && 
      request.headers.get('Authorization') !== validToken) {
    return new Response('Access denied', { status: 403 })
  }
  
  return fetch(request)
}

注意事项

GitHub Pages 每月有带宽限制,流量较大时需考虑分流存储。动态数据建议通过 Cloudflare Worker 中转 API 请求。定期检查 Cloudflare 的 Analytics 面板,监控异常流量。

相关推荐
阿里嘎多学长2 小时前
2026-07-10 GitHub 热点项目精选
开发语言·程序员·github·代码托管
今夕资源网9 小时前
AI声音克隆软件 CosyVoice今夕一键整合包解压即用 阿里巴巴通义实验室开源 github斩获22K星标
人工智能·github·多国语言·声音克隆·零样本语音克隆·感情·ai语音克隆
胡萝卜术11 小时前
从聊天模型到本地执行助手:Remote MCP 多工具 Agent 实战
面试·架构·github
慕容引刀13 小时前
告别Commit信息纠结:使用Git AI Commit插件实现规范化提交
人工智能·git·github·visual studio code·visual studio
GoGeekBaird1 天前
我开源了 BeeWeave,给 AI Agent 搭一个越用越懂你的知识创作台
后端·github
fthux1 天前
GitZip Pro 源码解析:一个 GitHub 文件/文件夹下载扩展是如何工作的(一)整体架构与扩展入口
人工智能·ai·开源·github·open source
第一程序员1 天前
Rust Agent 子进程执行:Command 之前,先定义输入和超时
python·rust·github
2501_936960361 天前
GitHub初步了解
github
wangruofeng1 天前
11 万 Star 的生成式 AI 入门课,Microsoft 做对了什么
github·aigc·ai编程
IOT那些事儿1 天前
GitHub Profile 429: Too Many Requests
github·profile·429