Skip to content

Cloudflare全套配置

目标

将域名接入Cloudflare,完成DNS、CDN、SSL、缓存、防火墙、Workers的全链路配置,实现出海站点的全球加速与安全防护。

前置条件

  • 已注册 Cloudflare 账号
  • 拥有自有域名(已在域名注册商处购买)
  • 网站已部署到服务器或平台(如 Vercel、自建服务器)
  • 了解基本DNS概念(A记录、CNAME记录)

操作步骤

步骤1:添加站点并配置DNS

目的:将域名接入Cloudflare,完成基础DNS解析配置。 操作

  1. 登录 Cloudflare Dashboard → 点击 "Add Site"。
  2. 输入你的域名(如 example.com),点击 "Continue"。
  3. 选择计划:Free 计划即可满足大部分出海场景。
  4. Cloudflare 自动扫描现有DNS记录,确认无误后点击 "Continue"。
  5. 前往域名注册商(Namecheap/GoDaddy/阿里云等),将 Nameserver 修改为 Cloudflare 提供的两个地址:
    • xxx.ns.cloudflare.com
    • xxx.ns.cloudflare.com
  6. 回到 Cloudflare 点击 "Done, check nameservers"。
  7. 等待DNS生效(通常几小时,最长48小时)。
  8. 生效后,检查DNS记录列表,确保以下记录正确:
    • A记录:指向服务器IP(如 Vercel 提供的 76.76.21.21
    • CNAME记录www 指向域名或平台地址
    • MX记录:如需接收邮件,配置邮件服务(如 Gmail、Zoho)
  9. 确认所有记录的 "Proxied" 状态为开启(橙色云图标)。 验证
  • Cloudflare Dashboard 显示 "Status: Active"
  • 访问域名可正常打开网站
  • DNS记录中 A 和 CNAME 均为 Proxied 状态

步骤2:配置SSL/TLS证书

目的:启用HTTPS加密,确保数据传输安全,提升SEO排名。 操作

  1. 进入 SSL/TLS → Overview。
  2. 将加密模式设置为 Full (strict)(要求源服务器也有有效证书)。
    • 如果源服务器是 Vercel 或其他自带SSL的平台,选择 Full (strict)。
    • 如果源服务器没有证书,先选择 Full,后续在源服务器安装证书后再改为 Full (strict)。
  3. 进入 SSL/TLS → Edge Certificates:
    • 确认 "Universal SSL Status" 为 Active(自动签发通配符证书)。
    • 开启 "Always Use HTTPS"(强制HTTP跳转HTTPS)。
    • 开启 "Automatic HTTPS Rewrites"(自动将混合内容重写为HTTPS)。
    • 设置 "Minimum TLS Version" 为 TLS 1.2。
  4. 如需配置HSTS:
    • 开启 "HTTP Strict Transport Security (HSTS)"。
    • Max Age 设为 6 months(15552000秒)。
    • 开启 "Include Subdomains"。
    • 开启 "Preload"(提交到HSTS预加载列表)。
    • 注意:首次开启建议Max Age设为1天测试,确认无误后再调大。
  5. (可选)配置证书透明度(Certificate Transparency)为开启状态。 验证
  • 浏览器访问 https://你的域名,锁图标正常
  • 访问 http://你的域名 自动跳转到 https://
  • SSL Labs 测试等级为 A 或 A+

步骤3:配置缓存规则

目的:通过缓存策略减少源站请求,提升全球访问速度。 操作

  1. 进入 Caching → Configuration:

    • 设置 "Caching Level" 为 Standard
    • 设置 "Browser Cache TTL" 为 4 hours(静态资源较频繁更新时)或 1 day(更新不频繁时)。
  2. 进入 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
  3. 进入 Caching → Configuration → "Purge Cache",了解手动清除缓存的方法:

    • 开发阶段频繁更新时,可点击 "Purge Everything" 清除全部缓存。
    • 上线后建议使用 "Custom Purge" 按URL精确清除。 验证
  • 浏览器 DevTools → Network → 查看静态资源响应头包含 cf-cache-status: HIT
  • 首次访问后再次访问,加载时间明显缩短

步骤4:配置Page Rules

目的:针对特定URL路径设置自定义规则,覆盖全局默认行为。 操作

  1. 进入 Rules → Page Rules(Free计划限3条规则)。

  2. 创建以下规则(按优先级从高到低排列):

    规则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
  3. 如需更多规则,可升级到 Pro/Business 计划。

  4. 规则执行顺序:从上到下匹配,匹配到第一条后停止。请确保高优先级规则在上方。 验证

  • 访问 example.com 自动跳转到 www.example.com
  • 访问管理后台页面功能正常

步骤5:配置防火墙规则

目的:阻止恶意流量和爬虫,保护站点安全。 操作

  1. 进入 Security → WAF(Web Application Firewall):

    • Free计划提供基础托管规则集,确保状态为 "On"。
  2. 进入 Security → Security Level:

    • 设置 "Security Level" 为 Medium
    • 开启 "Browser Integrity Check"。
    • 开启 "Privacy Pass Support"(允许合法用户快速通过验证)。
  3. 进入 Security → Firewall Rules,创建自定义规则:

    规则1:阻止特定国家访问(按需)

    • 条件:ip.geoip.country in {"CN"}(如不需要中国大陆流量)
    • 操作:Block
    • 注意:如果你的出海目标包含华人市场,不要阻止所有中文区域。

    规则2:阻止已知恶意IP

    • 条件:ip.src in {恶意IP列表}
    • 操作:Block

    规则3:限制API请求频率

    • 条件:(http.request.uri.path contains "/api/")
    • 操作:Rate Limiting — 10秒内超过100次请求则Block 60秒
  4. 进入 Security → Bots:

    • 开启 "Bot Fight Mode"(Free计划可用,自动挑战已知恶意爬虫)。
  5. 进入 Security → Settings:

    • "Challenge Passage" 设为 30 minutes(通过验证后的有效时长)。 验证
  • Security → Events 中可以看到被拦截的请求记录
  • 正常用户访问不受影响

步骤6:配置Workers(可选)

目的:在Cloudflare边缘节点运行自定义逻辑,实现A/B测试、重定向、请求改写等高级功能。 操作

  1. 进入 Workers & Pages → Overview。

  2. 点击 "Create Application" → "Create Worker"。

  3. 输入Worker名称(如 redirect-worker),点击 "Deploy"。

  4. 点击 "Edit Code",编写Worker脚本。

    示例:地区重定向

    javascript
    export 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);
      }
    };
  5. 点击 "Save and Deploy"。

  6. 配置路由:

    • 进入 Workers & Pages → 你的Worker → Settings → Triggers。
    • 添加 Route:example.com/*(或特定路径如 /api/*)。
  7. 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全套配置:域名购买与基础配置