本页由 AI 工具参考代码编写,尚未经过人工审核,内容仅供参考。如果无法解决问题或需要协助部署,可邮箱联系:kuohu233@qq.com
Cloudflare CDN 与安全防护配置
概述
Cloudflare 是全球最大的 CDN 和安全防护服务商之一,其免费套餐已经包含 CDN 加速、DDoS 防护、WAF(Web 应用防火墙)和免费 SSL 证书,完全满足学校场景的需求。
将你的域名接入 Cloudflare 后,所有流量都会先经过 Cloudflare 的边缘节点,自动获得以下能力:
- CDN 加速:静态资源缓存在全球节点,访问更快
- HTTPS 自动配置:免费 SSL 证书,自动续期
- DDoS 防护:自动拦截恶意流量攻击
- WAF 安全规则:防御常见 Web 攻击(SQL 注入、XSS 等)
- 速率限制:防止接口被恶意高频调用
整个过程不产生任何费用。
你需要准备
- 一个已注册的域名(任何域名注册商均可,如阿里云、腾讯云、Namecheap 等)
- 一个邮箱地址(用于注册 Cloudflare 账号)
步骤
1. 注册 Cloudflare 账号
- 打开 Cloudflare 官网
- 点击右上角 Sign Up,输入邮箱和密码
- 注册完成后,登录到 Cloudflare 控制台
2. 添加站点
- 登录后,在控制台首页点击 Add a site(添加站点)
- 输入你的根域名(例如
your-domain.com),不要带www或任何协议前缀 - Cloudflare 会扫描现有的 DNS 记录,等待扫描完成
- 选择 Free 计划(免费套餐),点击 Continue
3. 修改域名 DNS 服务器
Cloudflare 会给你分配两个 DNS 服务器地址,类似:
你需要到域名注册商那边,将域名的 DNS 服务器修改为 Cloudflare 分配的地址:
- 登录你的域名注册商管理后台(如阿里云域名控制台)
- 找到你的域名,进入「DNS 管理」或「修改 DNS」页面
- 将原来的 DNS 服务器替换为 Cloudflare 提供的两个地址
- 保存修改
DNS 服务器变更需要一定时间全球生效,通常在几分钟到几小时内完成。Cloudflare 控制台会显示验证状态,通过后会发邮件通知你。
4. 添加 DNS 记录
进入 Cloudflare 控制台的 DNS → Records 页面,为 AstraSchedule 的两个子域名添加 CNAME 记录。
后端 API 子域名
管理端子域名
关于代理状态的说明:
- 🟢 已代理(橙色云朵):流量经过 Cloudflare,启用 CDN 和安全防护功能。这是推荐的设置。
- ⬜ 仅 DNS(灰色云朵):流量直连源站,不经过 Cloudflare。仅在特殊情况(如配置了其他 CDN)时使用。
添加完成后,两个子域名的记录应该如下图所示:
5. 配置 SSL/TLS
- 进入 SSL/TLS → Overview 页面
- 将加密模式设置为 Full (strict)
SSL/TLS 加密模式说明:
Full (strict) 模式要求你的源站(函数计算和 Netlify)也配置了有效的 SSL 证书。阿里云函数计算和 Netlify 都默认提供 HTTPS,所以可以直接使用此模式。
- 在 Edge Certificates 子页面中,确保以下选项已开启:
- Always Use HTTPS:自动将 HTTP 请求重定向到 HTTPS
- Automatic HTTPS Rewrites:自动修复页面中的混合内容问题
6. 启用 WAF(Web 应用防火墙)
WAF 可以自动拦截常见的安全威胁,保护你的后端接口和管理端。
-
进入 Security → WAF 页面
-
Cloudflare 免费套餐已默认启用了 Cloudflare Managed Ruleset,这是一组由 Cloudflare 维护的安全规则,可以防御:
- SQL 注入攻击
- 跨站脚本攻击(XSS)
- 命令注入
- 常见的漏洞扫描行为
-
如果你使用的是 Pro 及以上套餐,还可以额外启用 OWASP 核心规则集。
自定义 WAF 规则(可选)
如果你的访问量较大或需要更精细的控制,可以在 Security → WAF → Custom rules 中创建自定义规则。例如,限制对后端 API 的访问频率:
规则名称:API Rate Limit
7. 速率限制建议
通过速率限制可以保护后端 API 不被刷接口或被恶意高频调用,维持服务稳定。
进入 Security → WAF → Rate limiting rules,点击 Create rule,建议创建以下两条规则:
API 全局限速
管理端登录接口限速
8. 验证
- 等待 DNS 生效后,在浏览器中访问
https://api.your-domain.com/,应该能正常返回后端响应 - 访问
https://admin.your-domain.com/,应该能打开管理端页面 - 检查地址栏左侧是否有锁图标,确认 HTTPS 正常工作
- 在 Cloudflare 控制台的 Analytics 页面,可以查看流量和安全事件统计
注意事项
- DNS 变更后需要耐心等待,全球生效通常需要几分钟到 48 小时不等
- Cloudflare 免费套餐已经足够 AstraSchedule 的日常使用,无需升级
- 如果你之前已经在域名注册商处配置了 DNS 记录,Cloudflare 在添加站点时会自动扫描并导入,但请仔细检查导入结果,确保没有遗漏
- 如果遇到访问问题,可以先在 Cloudflare 控制台点击域名右侧的三个点 → Pause Cloudflare on Site,暂时绕过 Cloudflare 排查是否是代理导致的问题
- Cloudflare 的 WAF 规则偶尔会产生误拦截,如果客户端或管理端出现不正常的访问失败,可以在 Security → Events 中查看拦截日志,确认后可以针对性地添加跳过规则