接入 Cloudflare
给你的网站套上免费的 CDN、DNS、HTTPS 和基础防护——怎么添加站点、配 DNS、选 SSL 模式、做缓存与安全。
Cloudflare 在你的网站前面免费帮你做四件大事:CDN 加速、DNS 解析、HTTPS 证书、基础防护。它把全球访客的请求先接到自己的边缘节点,再转给你的源站——访客更快,源站更省、更安全。个人项目几乎必上,强烈推荐。
为什么用 Cloudflare / Why Cloudflare
- 免费 CDN / 缓存 —— 静态资源(图片、JS、CSS)缓存在全球边缘节点,访客就近取用,源站带宽和负载大幅下降。
- 免费 SSL —— 自动签发并续期 HTTPS 证书,你不用碰 Let's Encrypt,浏览器小绿锁直接到手。
- DDoS 防护 —— 免费套餐就自带 L3/L4 容量级 DDoS 缓解,扛流量攻击不额外花钱。
- 隐藏源站 IP —— 访客只看到 Cloudflare 的 IP,你的服务器真实地址不暴露在公网,扫描和直连攻击更难。
- 流量分析 —— 免费看请求量、缓存命中率、威胁拦截、地区分布,比自己装统计省事。
这些在免费套餐里就全有了,对个人项目和中小站点完全够用。
添加站点 / Add your site
接入分两步:先在 Cloudflare 添加域名,再去域名注册商那边把 nameservers 改成 Cloudflare 给的两个地址。还没买域名的,先看 购买域名。
在 Cloudflare 添加域名
注册 Cloudflare 账号后,点 Add a site,输入你的裸域名(如 example.com,不带 www),选 Free 套餐。
让它扫描现有 DNS
Cloudflare 会自动扫描你域名当前的 DNS 记录并导入。核对一遍:确认 A、CNAME、MX 等记录都在,缺的手动补上(尤其是邮箱相关的 MX、TXT)。
在注册商改 nameservers
Cloudflare 会给你两个 nameserver 地址(形如 xxx.ns.cloudflare.com)。登录你的域名注册商后台,把域名的 nameservers 改成这两个,删掉原来的。
等待激活
改完 nameservers 后,Cloudflare 会自动检测。生效通常几分钟到几小时(最长 24–48 小时)。域名状态变成 Active 就接入成功了。
改 nameservers 是「全托管」方式,把 DNS 完全交给 Cloudflare,后面所有记录都在 Cloudflare 后台管理,也是用代理(橙云)功能的前提。
配置 DNS 记录 / DNS records
DNS 记录告诉浏览器「这个域名指向哪里」。最常用的几种:
- A / AAAA —— 把域名指向一个 IP 地址(A 是 IPv4,AAAA 是 IPv6)。源站是自己的服务器时用它。
- CNAME —— 把域名指向另一个域名(如托管平台给的
your-app.vercel.app)。 - MX —— 邮件服务器,收邮件用。
- TXT —— 验证、SPF/DKIM 等纯文本记录。
橙云 vs 灰云 / Proxied vs DNS only
每条 A / AAAA / CNAME 记录前面有个云朵图标:
- 橙云(Proxied,代理) —— 流量先经过 Cloudflare 再到你源站,CDN、缓存、HTTPS、DDoS 防护、隐藏源站 IP 全靠它。网站主入口都该用橙云。
- 灰云(DNS only,仅解析) —— Cloudflare 只做解析,流量直连你的源站,不经过 Cloudflare。
MX等不能被代理的记录、或你想直连的子域名用灰云。
| 类型 | 名称 | 内容 | 代理 |
|---|---|---|---|
| A | @ | 203.0.113.10(你的服务器 IP) | 橙云 |
| CNAME | www | example.com | 橙云 |
| CNAME | app | your-app.vercel.app | 橙云 |
| MX | @ | mx.your-mail.com | 灰云(DNS only) |
| TXT | @ | v=spf1 include:... | 灰云(不可代理) |
SSL/TLS 模式 / SSL modes
在 SSL/TLS → Overview 里选加密模式,决定 Cloudflare 到你源站这一段怎么加密:
- Off —— 不加密,别用。
- Flexible —— 浏览器到 Cloudflare 加密,但 Cloudflare 到源站是明文 HTTP。看着是 HTTPS,其实后半段裸奔,不要用。
- Full —— 全程加密,但不校验源站证书(自签也行)。
- Full (strict) —— 全程加密 且校验源站证书。强烈推荐这个。
源站没有有效证书的话,装一张免费的 Cloudflare Origin Certificate(在 SSL/TLS → Origin Server 里生成),就能安全地用 Full (strict)。
千万别用 Flexible。 如果你的服务器自己又做了 HTTP→HTTPS 跳转,Flexible 会导致无限重定向循环;而且 Cloudflare 到源站走明文,属于不安全连接。正确做法是源站启用 HTTPS,模式选 Full (strict)。
在 SSL/TLS → Edge Certificates 里再打开:
- Always Use HTTPS —— 所有 HTTP 请求自动 301 到 HTTPS。
- Automatic HTTPS Rewrites —— 自动把页面里的
http://资源链接改写成https://,避免混合内容警告。
缓存 / Caching
默认情况下,Cloudflare 会缓存常见的静态资源(图片、CSS、JS、字体等),HTML 默认不缓存。
- Cache Rules / Page Rules —— 在 Caching → Cache Rules 里按路径/扩展名定制缓存:比如给
/static/*设更长的 Edge Cache TTL,或对/api/*明确「不缓存」。Page Rules 是旧版做法,新项目优先用 Cache Rules。 - 部署后清缓存 —— 上线新版本后,旧文件可能还在边缘缓存里。到 Caching → Configuration → Purge Cache,紧急时用 Purge Everything,平时更推荐按 URL 单独清,避免缓存命中率骤降。
- 动态应用别缓存 HTML —— 带登录态、个性化内容的页面如果被缓存,会出现「A 看到 B 的数据」。确认 HTML 响应带了正确的
Cache-Control(如no-store或private),或用 Cache Rule 显式 Bypass。
给文件名带哈希的静态资源(如 app.3f9a.js)设很长的缓存即可,因为内容变了文件名也变。HTML 入口保持不缓存或短缓存,这样部署后无需清缓存也能让用户拿到最新版。
基础安全 / Basic security
Cloudflare 免费套餐就能挡掉一大批垃圾流量。建议依次开启:
- WAF 托管规则 —— Security → WAF 里打开 Cloudflare 的 Managed Rules,自动拦截常见的注入、扫描等攻击。
- Bot Fight Mode —— Security → Bots,免费拦截明显的恶意爬虫和机器人。
- Rate Limiting(限流) —— 对登录、API 等敏感端点设速率限制(如「每分钟超过 N 次就拦」),挡住暴力破解和滥用。免费套餐有基础额度。
- Always Use HTTPS —— 上面已说,强制全站 HTTPS。
- HSTS —— 告诉浏览器「以后只用 HTTPS 访问本站」。在 SSL/TLS → Edge Certificates → HSTS 开启。确认 HTTPS 在所有子域名都正常后再开,否则会把用户锁在打不开的状态里。
更系统的服务器加固、防火墙、备份等见 运维安全;想让站点被搜索引擎收录见 SEO 优化。
常见坑 / Common pitfalls
- 重定向循环 —— SSL 模式选了 Flexible,而源站又强制 HTTP→HTTPS 跳转:Cloudflare 用 HTTP 回源 → 源站跳到 HTTPS → 又被 Cloudflare 以 HTTP 回源……死循环。解法:源站上 HTTPS,模式改 Full (strict)。
- 代理了不该代理的记录 —— 把
MX之类的记录设成橙云会让邮件收发失败;只有 HTTP/HTTPS 流量能走代理。邮件 MX、以及需要直连的记录一律用灰云(DNS only)。 - 缓存了动态内容 —— 不小心把带登录态的 HTML 或 API 响应缓存住,会导致用户看到别人的数据或过期内容。动态内容务必 Bypass 缓存或设
Cache-Control: no-store。
本步骤检查清单
- 在 Cloudflare 添加了站点,并在注册商把 nameservers 改成了 Cloudflare 的两个地址,状态已 Active
- 核对了 DNS 记录,网站入口用橙云(代理),
MX等用灰云(DNS only) - SSL 模式设为 Full (strict),并开启了 Always Use HTTPS 和 Automatic HTTPS Rewrites
- 配好了缓存策略,动态/HTML 不被错误缓存,知道部署后怎么 Purge Cache
- 开启了 WAF 托管规则、Bot Fight Mode 和必要的限流;确认 HTTPS 全站正常后再开 HSTS
完整清单见 上线自查清单。