主题
Cloudflare全套配置
目标
将域名接入Cloudflare,完成DNS、CDN、SSL、缓存、防火墙、Workers的全链路配置,实现出海站点的全球加速与安全防护。
前置条件
- 已注册 Cloudflare 账号
- 拥有自有域名(已在域名注册商处购买)
- 网站已部署到服务器或平台(如 Vercel、自建服务器)
- 了解基本DNS概念(A记录、CNAME记录)
操作步骤
步骤1:添加站点并配置DNS
目的:将域名接入Cloudflare,完成基础DNS解析配置。 操作:
- 登录 Cloudflare Dashboard → 点击 "Add Site"。
- 输入你的域名(如
example.com),点击 "Continue"。 - 选择计划:Free 计划即可满足大部分出海场景。
- Cloudflare 自动扫描现有DNS记录,确认无误后点击 "Continue"。
- 前往域名注册商(Namecheap/GoDaddy/阿里云等),将 Nameserver 修改为 Cloudflare 提供的两个地址:
xxx.ns.cloudflare.comxxx.ns.cloudflare.com
- 回到 Cloudflare 点击 "Done, check nameservers"。
- 等待DNS生效(通常几小时,最长48小时)。
- 生效后,检查DNS记录列表,确保以下记录正确:
- A记录:指向服务器IP(如 Vercel 提供的
76.76.21.21) - CNAME记录:
www指向域名或平台地址 - MX记录:如需接收邮件,配置邮件服务(如 Gmail、Zoho)
- A记录:指向服务器IP(如 Vercel 提供的
- 确认所有记录的 "Proxied" 状态为开启(橙色云图标)。 验证:
- Cloudflare Dashboard 显示 "Status: Active"
- 访问域名可正常打开网站
- DNS记录中 A 和 CNAME 均为 Proxied 状态
步骤2:配置SSL/TLS证书
目的:启用HTTPS加密,确保数据传输安全,提升SEO排名。 操作:
- 进入 SSL/TLS → Overview。
- 将加密模式设置为 Full (strict)(要求源服务器也有有效证书)。
- 如果源服务器是 Vercel 或其他自带SSL的平台,选择 Full (strict)。
- 如果源服务器没有证书,先选择 Full,后续在源服务器安装证书后再改为 Full (strict)。
- 进入 SSL/TLS → Edge Certificates:
- 确认 "Universal SSL Status" 为 Active(自动签发通配符证书)。
- 开启 "Always Use HTTPS"(强制HTTP跳转HTTPS)。
- 开启 "Automatic HTTPS Rewrites"(自动将混合内容重写为HTTPS)。
- 设置 "Minimum TLS Version" 为 TLS 1.2。
- 如需配置HSTS:
- 开启 "HTTP Strict Transport Security (HSTS)"。
- Max Age 设为 6 months(15552000秒)。
- 开启 "Include Subdomains"。
- 开启 "Preload"(提交到HSTS预加载列表)。
- 注意:首次开启建议Max Age设为1天测试,确认无误后再调大。
- (可选)配置证书透明度(Certificate Transparency)为开启状态。 验证:
- 浏览器访问
https://你的域名,锁图标正常 - 访问
http://你的域名自动跳转到https:// - SSL Labs 测试等级为 A 或 A+
步骤3:配置缓存规则
目的:通过缓存策略减少源站请求,提升全球访问速度。 操作:
进入 Caching → Configuration:
- 设置 "Caching Level" 为 Standard。
- 设置 "Browser Cache TTL" 为 4 hours(静态资源较频繁更新时)或 1 day(更新不频繁时)。
进入 Caching → Cache Rules,创建以下规则:
规则1:静态资源长缓存
- 条件:URI Path 匹配
*.js、*.css、*.png、*.jpg、*.webp、*.svg、*.woff2 - 操作:Edge Cache TTL = 1 month,Browser Cache TTL = 7 days
规则2:HTML页面短缓存
- 条件:URI Path 匹配
/*(排除静态资源) - 操作:Edge Cache TTL = 4 hours,Browser Cache TTL = 30 minutes
规则3:API请求不缓存
- 条件:URI Path 匹配
/api/* - 操作:Bypass Cache
- 条件:URI Path 匹配
进入 Caching → Configuration → "Purge Cache",了解手动清除缓存的方法:
- 开发阶段频繁更新时,可点击 "Purge Everything" 清除全部缓存。
- 上线后建议使用 "Custom Purge" 按URL精确清除。 验证:
- 浏览器 DevTools → Network → 查看静态资源响应头包含
cf-cache-status: HIT - 首次访问后再次访问,加载时间明显缩短
步骤4:配置Page Rules
目的:针对特定URL路径设置自定义规则,覆盖全局默认行为。 操作:
进入 Rules → Page Rules(Free计划限3条规则)。
创建以下规则(按优先级从高到低排列):
规则1:管理后台跳转
- URL匹配:
example.com/admin/* - 设置:Disable Performance(关闭缓存和优化,避免管理页面异常)
规则2:强制www跳转
- URL匹配:
example.com/* - 设置:Forwarding URL (301 - Permanent Redirect) →
https://www.example.com/$1
规则3:全站安全加固
- URL匹配:
www.example.com/* - 设置:Security Level = High,Browser Integrity Check = On
- URL匹配:
如需更多规则,可升级到 Pro/Business 计划。
规则执行顺序:从上到下匹配,匹配到第一条后停止。请确保高优先级规则在上方。 验证:
- 访问
example.com自动跳转到www.example.com - 访问管理后台页面功能正常
步骤5:配置防火墙规则
目的:阻止恶意流量和爬虫,保护站点安全。 操作:
进入 Security → WAF(Web Application Firewall):
- Free计划提供基础托管规则集,确保状态为 "On"。
进入 Security → Security Level:
- 设置 "Security Level" 为 Medium。
- 开启 "Browser Integrity Check"。
- 开启 "Privacy Pass Support"(允许合法用户快速通过验证)。
进入 Security → Firewall Rules,创建自定义规则:
规则1:阻止特定国家访问(按需)
- 条件:
ip.geoip.countryin {"CN"}(如不需要中国大陆流量) - 操作:Block
- 注意:如果你的出海目标包含华人市场,不要阻止所有中文区域。
规则2:阻止已知恶意IP
- 条件:
ip.src in {恶意IP列表} - 操作:Block
规则3:限制API请求频率
- 条件:
(http.request.uri.path contains "/api/") - 操作:Rate Limiting — 10秒内超过100次请求则Block 60秒
- 条件:
进入 Security → Bots:
- 开启 "Bot Fight Mode"(Free计划可用,自动挑战已知恶意爬虫)。
进入 Security → Settings:
- "Challenge Passage" 设为 30 minutes(通过验证后的有效时长)。 验证:
- Security → Events 中可以看到被拦截的请求记录
- 正常用户访问不受影响
步骤6:配置Workers(可选)
目的:在Cloudflare边缘节点运行自定义逻辑,实现A/B测试、重定向、请求改写等高级功能。 操作:
进入 Workers & Pages → Overview。
点击 "Create Application" → "Create Worker"。
输入Worker名称(如
redirect-worker),点击 "Deploy"。点击 "Edit Code",编写Worker脚本。
示例:地区重定向
javascriptexport default { async fetch(request) { const url = new URL(request.url); const country = request.cf?.country || 'US'; // 根据地区重定向到对应语言版本 const redirects = { 'JP': 'https://ja.example.com', 'DE': 'https://de.example.com', 'FR': 'https://fr.example.com', }; if (redirects[country]) { return Response.redirect(redirects[country], 302); } return fetch(request); } };点击 "Save and Deploy"。
配置路由:
- 进入 Workers & Pages → 你的Worker → Settings → Triggers。
- 添加 Route:
example.com/*(或特定路径如/api/*)。
Free计划限制:每天10万次请求,每次执行不超过10ms CPU时间。 验证:
- 访问站点,Worker逻辑正常执行
- Workers → Metrics 中可以看到请求统计数据
检查清单
- [ ] 域名已接入Cloudflare,状态为Active
- [ ] DNS记录完整且均为Proxied状态
- [ ] SSL/TLS模式为Full (strict)
- [ ] Always Use HTTPS已开启
- [ ] 缓存规则已配置(静态资源、HTML、API分别处理)
- [ ] Page Rules已配置(www跳转、管理后台、安全规则)
- [ ] 防火墙规则已配置(Bot Fight Mode开启)
- [ ] Workers已部署并绑定路由(如使用)
常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| DNS接入后网站无法访问 | Nameserver未生效或DNS记录缺失 | 在注册商确认Nameserver已修改,Cloudflare中确认DNS记录完整 |
| SSL错误(ERR_TOO_MANY_REDIRECTS) | SSL模式与源站不匹配 | 源站有证书则设为Full(strict);源站无证书则设为Flexible |
| 缓存命中率低 | 缓存规则未覆盖主要资源 | 检查Cache Rules,确保静态资源设置了Edge Cache TTL |
| Page Rules不生效 | 规则顺序错误或URL匹配模式不对 | 高优先级规则放上方;检查通配符匹配是否正确 |
| WAF误拦正常用户 | 安全等级设置过高 | 将Security Level降为Medium,或为特定IP添加白名单 |
| Workers请求超限 | Free计划日请求量超10万 | 升级到Workers Paid计划($5/月起,1000万次请求) |
| 国内访问慢 | Cloudflare免费节点在国内距离远 | 考虑使用Cloudflare Partner或国内CDN加速 |
参考文章
- Cloudflare:工具档案
- Vercel:前端托管平台,与Cloudflare配合使用
- 性能优化清单:配合CDN的全栈性能优化
- Cloudflare全套配置:域名购买与基础配置